Subject: [PATCH 1/4] skge: handle zero address at open

From: Stephen Hemminger <[email-masked]>
Date: Fri, 02 Feb 2007 08:22:51 -0800

Some motherboards are broken and have no address set. Failing at probe time 
prevents the device from ever being used (like to download a fixed BIOS). Instead
warn on probe and check again when device is brought up. That way the address
can be set.

Signed-off-by: Stephen Hemminger <[email-masked]>

--- skge.orig/drivers/net/skge.c
+++ skge/drivers/net/skge.c
@@ -2373,6 +2373,9 @@ static int skge_up(struct net_device *de
 	size_t rx_size, tx_size;
 	int err;
 
+	if (!is_valid_ether_addr(dev->dev_addr))
+		return -EINVAL;
+
 	if (netif_msg_ifup(skge))
 		printk(KERN_INFO PFX "%s: enabling interface\n", dev->name);
 
@@ -3567,11 +3570,10 @@ static int __devinit skge_probe(struct p
 	if (!dev)
 		goto err_out_led_off;
 
+	/* Some motherboards are broken and has zero in ROM. */
 	if (!is_valid_ether_addr(dev->dev_addr)) {
-		printk(KERN_ERR PFX "%s: bad (zero?) ethernet address in rom\n",
+		printk(KERN_WARNING PFX "%s: bad (zero?) ethernet address in rom\n",
 		       pci_name(pdev));
-		err = -EIO;
-		goto err_out_free_netdev;
 	}
 
 	err = register_netdev(dev);

--