summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2008-06-09 16:33:57 -0700
committerJeff Garzik <jgarzik@redhat.com>2008-06-11 21:58:28 -0400
commitd1d5741d8568c268ec234a5b35af4a04498be6d8 (patch)
treecda12027b3afb215d085229a86a40584f3637450
parent86a74ff21a7ac4bc06b18076ddb0347712b46cfd (diff)
downloadlinux-stable-d1d5741d8568c268ec234a5b35af4a04498be6d8.tar.gz
linux-stable-d1d5741d8568c268ec234a5b35af4a04498be6d8.tar.bz2
linux-stable-d1d5741d8568c268ec234a5b35af4a04498be6d8.zip
macb: use random mac if stored address in EEPROM is invalid
We should use a random mac address if the EEPROM doesn't contain a valid one. This makes life on Boards with unprogrammed EEPROM devices easier. Signed-off-by: Sven Schnelle <svens@stackframe.org> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/net/macb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index 92dccd43bdca..e34630252cef 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -80,8 +80,12 @@ static void __init macb_get_hwaddr(struct macb *bp)
addr[4] = top & 0xff;
addr[5] = (top >> 8) & 0xff;
- if (is_valid_ether_addr(addr))
+ if (is_valid_ether_addr(addr)) {
memcpy(bp->dev->dev_addr, addr, sizeof(addr));
+ } else {
+ dev_info(&bp->pdev->dev, "invalid hw address, using random\n");
+ random_ether_addr(bp->dev->dev_addr);
+ }
}
static int macb_mdio_read(struct mii_bus *bus, int mii_id, int regnum)