patch-2.4.0-test2 linux/drivers/net/oaknet.c

Next file: linux/drivers/net/pcmcia/Config.in
Previous file: linux/drivers/net/ni52.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test1/linux/drivers/net/oaknet.c linux/drivers/net/oaknet.c
@@ -144,16 +144,6 @@
 	}
 
 	/*
-	 * We're dependent on the 8390 generic driver module, make
-	 * sure its symbols are loaded.
-	 */
-
-	if (load_8390_module("oaknet.c")) {
-		release_region(dev->base_addr, OAKNET_IO_SIZE);
-		return (-ENOSYS);
-	}
-
-	/*
 	 * We're not using the old-style probing API, so we have to allocate
 	 * our own device structure.
 	 */
@@ -676,13 +666,21 @@
 {
 	int status;
 
+	/*
+	 * We're dependent on the 8390 generic driver module, make
+	 * sure its symbols are loaded.
+	 */
+
+	if (load_8390_module("oaknet.c"))
+		return (-ENOSYS);
+
 	if (oaknet_devs != NULL)
 		return (-EBUSY);
 
 	status = oaknet_init()
 
-	if (status == 0)
-		lock_8390_module();
+	if (status != 0)
+		unload_8390_module();
 
 	return (status);
 }
@@ -706,7 +704,7 @@
 
 	oaknet_devs = NULL;
 
-	unlock_8390_module();
+	unload_8390_module();
 }
 
 module_init(oaknet_init_module);

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