diff -urpN --exclude-from=/home/davej/.exclude bk-linus/drivers/net/sunbmac.c linux-2.5/drivers/net/sunbmac.c
--- bk-linus/drivers/net/sunbmac.c	2002-11-21 02:16:30.000000000 +0000
+++ linux-2.5/drivers/net/sunbmac.c	2002-11-21 17:59:30.000000000 +0000
@@ -1035,8 +1035,9 @@ static void bigmac_set_multicast(struct 
 	sbus_writel(tmp, bregs + BMAC_RXCFG);
 }
 
-static int __init bigmac_ether_init(struct net_device *dev, struct sbus_dev *qec_sdev)
+static int __init bigmac_ether_init(struct sbus_dev *qec_sdev)
 {
+	struct net_device *dev;
 	static int version_printed;
 	struct bigmac *bp;
 	u8 bsizes, bsizes_more;
@@ -1051,9 +1052,6 @@ static int __init bigmac_ether_init(stru
 	if (version_printed++ == 0)
 		printk(KERN_INFO "%s", version);
 
-	if (!dev)
-		return -ENOMEM;
-
 	/* Report what we have found to the user. */
 	printk(KERN_INFO "%s: BigMAC 100baseT Ethernet ", dev->name);
 	dev->base_addr = (long) qec_sdev;
@@ -1182,7 +1180,6 @@ static int __init bigmac_ether_init(stru
 	/* Finish net device registration. */
 	dev->irq = bp->bigmac_sdev->irqs[0];
 	dev->dma = 0;
-	ether_setup(dev);
 
 	/* Put us into the list of instances attached for later driver
 	 * exit.
@@ -1236,7 +1234,6 @@ static int __init bigmac_match(struct sb
 
 static int __init bigmac_probe(void)
 {
-	struct net_device *dev = NULL;
 	struct sbus_bus *sbus;
 	struct sbus_dev *sdev = 0;
 	static int called;
@@ -1250,12 +1247,9 @@ static int __init bigmac_probe(void)
 
 	for_each_sbus(sbus) {
 		for_each_sbusdev(sdev, sbus) {
-			if (cards)
-				dev = NULL;
-
 			if (bigmac_match(sdev)) {
 				cards++;
-				if ((v = bigmac_ether_init(dev, sdev)))
+				if ((v = bigmac_ether_init(sdev)))
 					return v;
 			}
 		}
