diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2006-06-06 13:11:14 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-06-08 15:44:54 -0400 |
commit | 631ae320a4123898927ab1eb32ad81274a713488 (patch) | |
tree | 81c3e089f06a17efbc9f075bc8a875406492c9e2 | |
parent | 7c442fa17eabd34301598acbca8ecb99daad6027 (diff) |
[PATCH] skge: dont allow bad hardware address from ROM
Sometimes boards don't reset properly, and the address read out of the
EEPROM is zero. Stop the insanity before the device gets registered.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/skge.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/net/skge.c b/drivers/net/skge.c index f377c259a398..5044f45023a4 100644 --- a/drivers/net/skge.c +++ b/drivers/net/skge.c | |||
@@ -3362,6 +3362,14 @@ static int __devinit skge_probe(struct pci_dev *pdev, | |||
3362 | if ((dev = skge_devinit(hw, 0, using_dac)) == NULL) | 3362 | if ((dev = skge_devinit(hw, 0, using_dac)) == NULL) |
3363 | goto err_out_led_off; | 3363 | goto err_out_led_off; |
3364 | 3364 | ||
3365 | if (!is_valid_ether_addr(dev->dev_addr)) { | ||
3366 | printk(KERN_ERR PFX "%s: bad (zero?) ethernet address in rom\n", | ||
3367 | pci_name(pdev)); | ||
3368 | err = -EIO; | ||
3369 | goto err_out_free_netdev; | ||
3370 | } | ||
3371 | |||
3372 | |||
3365 | err = register_netdev(dev); | 3373 | err = register_netdev(dev); |
3366 | if (err) { | 3374 | if (err) { |
3367 | printk(KERN_ERR PFX "%s: cannot register net device\n", | 3375 | printk(KERN_ERR PFX "%s: cannot register net device\n", |