patch-2.2.11 linux/drivers/net/sgiseeq.c

Next file: linux/drivers/net/sgiseeq.h
Previous file: linux/drivers/net/seeq8005.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.10/linux/drivers/net/sgiseeq.c linux/drivers/net/sgiseeq.c
@@ -1,11 +1,9 @@
-/*
+/* $Id: sgiseeq.c,v 1.9 1998/10/14 23:40:46 ralf Exp $
+ *
  * sgiseeq.c: Seeq8003 ethernet driver for SGI machines.
  *
  * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
- *
- * $Id: sgiseeq.c,v 1.6 1998/10/14 17:29:44 ralf Exp $
  */
-
 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <linux/types.h>
@@ -695,6 +693,7 @@
 	dev->irq                  = irq;
 	dev->dma                  = 0;
 	ether_setup(dev);
+
 	return 0;
 }
 
@@ -724,15 +723,20 @@
 
 int sgiseeq_probe(struct device *dev)
 {
+	static int initialized;
 	char *ep;
 
+	if (initialized)	/* Already initialized? */
+		return 0;
+	initialized++;
+
 	/* First get the ethernet address of the onboard
 	 * interface from ARCS.
+	 * (This is fragile; PROM doesn't like running from cache.)
 	 */
 	ep = romvec->get_evar("eaddr");
 	str2eaddr(onboard_eth_addr, ep);
 	return sgiseeq_init(dev,
 			    (struct sgiseeq_regs *) (KSEG1ADDR(0x1fbd4000)),
 			    &hpc3c0->ethregs, 3);
-
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)