patch-1.3.57 linux/drivers/net/net_init.c

Next file: linux/drivers/net/sk_g16.c
Previous file: linux/drivers/net/arcnet.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.56/linux/drivers/net/net_init.c linux/drivers/net/net_init.c
@@ -258,11 +258,13 @@
 				}
 		}
 
+		sti();	/* device probes assume interrupts enabled */
 		if (dev->init(dev) != 0) {
 		    if (i < MAX_ETH_CARDS) ethdev_index[i] = NULL;
 			restore_flags(flags);
 			return -EIO;
 		}
+		cli();
 
 		/* Add device to end of chain */
 		if (dev_base) {
@@ -345,6 +347,9 @@
 			break;
 		}
 	}
+
+	restore_flags(flags);
+
 	/* You can i.e use a interfaces in a route though it is not up.
 	   We call close_dev (which is changed: it will down a device even if
 	   dev->flags==0 (but it will not call dev->stop if IFF_UP
@@ -353,8 +358,6 @@
 	   dev_mc_discard(dev), ....
 	*/
 	dev_close(dev);
-
-	restore_flags(flags);
 }
 
 

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this