patch-2.3.99-pre6 linux/drivers/isdn/avmb1/b1pci.c
Next file: linux/drivers/isdn/avmb1/b1pcmcia.c
Previous file: linux/drivers/isdn/avmb1/b1isa.c
Back to the patch index
Back to the overall index
- Lines: 83
- Date:
Thu Apr 13 09:03:03 2000
- Orig file:
v2.3.99-pre5/linux/drivers/isdn/avmb1/b1pci.c
- Orig date:
Wed Feb 16 17:03:52 2000
diff -u --recursive --new-file v2.3.99-pre5/linux/drivers/isdn/avmb1/b1pci.c linux/drivers/isdn/avmb1/b1pci.c
@@ -1,11 +1,15 @@
/*
- * $Id: b1pci.c,v 1.20 2000/02/02 18:36:03 calle Exp $
+ * $Id: b1pci.c,v 1.21 2000/04/03 13:29:24 calle Exp $
*
* Module for AVM B1 PCI-card.
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: b1pci.c,v $
+ * Revision 1.21 2000/04/03 13:29:24 calle
+ * make Tim Waugh happy (module unload races in 2.3.99-pre3).
+ * no real problem there, but now it is much cleaner ...
+ *
* Revision 1.20 2000/02/02 18:36:03 calle
* - Modules are now locked while init_module is running
* - fixed problem with memory mapping if address is not aligned
@@ -75,7 +79,7 @@
#include "capilli.h"
#include "avmcard.h"
-static char *revision = "$Revision: 1.20 $";
+static char *revision = "$Revision: 1.21 $";
/* ------------------------------------------------------------- */
@@ -509,6 +513,8 @@
char *p;
int retval;
+ MOD_INC_USE_COUNT;
+
if ((p = strchr(revision, ':'))) {
strncpy(driver->revision, p + 1, sizeof(driver->revision));
p = strchr(driver->revision, '$');
@@ -522,6 +528,7 @@
if (!di) {
printk(KERN_ERR "%s: failed to attach capi_driver\n",
driver->name);
+ MOD_DEC_USE_COUNT;
return -EIO;
}
@@ -534,6 +541,7 @@
detach_capi_driver(driver);
printk(KERN_ERR "%s: failed to attach capi_driver\n",
driverv4->name);
+ MOD_DEC_USE_COUNT;
return -EIO;
}
#endif
@@ -545,6 +553,7 @@
#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCIV4
detach_capi_driver(driverv4);
#endif
+ MOD_DEC_USE_COUNT;
return -EIO;
}
@@ -554,6 +563,7 @@
#ifdef MODULE
cleanup_module();
#endif
+ MOD_DEC_USE_COUNT;
return retval;
}
ncards++;
@@ -561,12 +571,15 @@
if (ncards) {
printk(KERN_INFO "%s: %d B1-PCI card(s) detected\n",
driver->name, ncards);
+ MOD_DEC_USE_COUNT;
return 0;
}
printk(KERN_ERR "%s: NO B1-PCI card detected\n", driver->name);
+ MOD_DEC_USE_COUNT;
return -ESRCH;
#else
printk(KERN_ERR "%s: kernel not compiled with PCI.\n", driver->name);
+ MOD_DEC_USE_COUNT;
return -EIO;
#endif
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)