From d6454cbdb5bf5fbb45a73d7c36e650ece01e31ad Mon Sep 17 00:00:00 2001 From: Ian Lepore Date: Tue, 22 Oct 2013 18:14:06 +0000 Subject: Mask out non-address bits in the mac address register, for proper detection of an all-zeroes address. Also remove a misplaced return. Reviewed by: br@ --- sys/dev/ffec/if_ffec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'sys/dev/ffec') diff --git a/sys/dev/ffec/if_ffec.c b/sys/dev/ffec/if_ffec.c index 8da5acd71e0f..5025c8a29119 100644 --- a/sys/dev/ffec/if_ffec.c +++ b/sys/dev/ffec/if_ffec.c @@ -883,7 +883,7 @@ ffec_get_hwaddr(struct ffec_softc *sc, uint8_t *hwaddr) * assigned bit set, and the broadcast/multicast bit clear. */ palr = RD4(sc, FEC_PALR_REG); - paur = RD4(sc, FEC_PAUR_REG); + paur = RD4(sc, FEC_PAUR_REG) & FEC_PAUR_PADDR2_MASK; if ((palr | paur) != 0) { hwaddr[0] = palr >> 24; hwaddr[1] = palr >> 16; @@ -891,7 +891,6 @@ ffec_get_hwaddr(struct ffec_softc *sc, uint8_t *hwaddr) hwaddr[3] = palr >> 0; hwaddr[4] = paur >> 24; hwaddr[5] = paur >> 16; - return; } else { rnd = arc4random() & 0x00ffffff; hwaddr[0] = 'b'; -- cgit v1.3