patch-2.4.0-test12 linux/drivers/isdn/avmb1/kcapi.c
Next file: linux/drivers/isdn/avmb1/t1isa.c
Previous file: linux/drivers/isdn/avmb1/capiutil.c
Back to the patch index
Back to the overall index
- Lines: 157
- Date:
Wed Dec 6 12:06:18 2000
- Orig file:
v2.4.0-test11/linux/drivers/isdn/avmb1/kcapi.c
- Orig date:
Mon Jul 24 18:48:49 2000
diff -u --recursive --new-file v2.4.0-test11/linux/drivers/isdn/avmb1/kcapi.c linux/drivers/isdn/avmb1/kcapi.c
@@ -1,11 +1,23 @@
/*
- * $Id: kcapi.c,v 1.18 2000/07/20 10:22:27 calle Exp $
+ * $Id: kcapi.c,v 1.21 2000/11/23 20:45:14 kai Exp $
*
* Kernel CAPI 2.0 Module
*
* (c) Copyright 1999 by Carsten Paeth (calle@calle.in-berlin.de)
*
* $Log: kcapi.c,v $
+ * Revision 1.21 2000/11/23 20:45:14 kai
+ * fixed module_init/exit stuff
+ * Note: compiled-in kernel doesn't work pre 2.2.18 anymore.
+ *
+ * Revision 1.20 2000/11/19 17:01:53 kai
+ * compatibility cleanup - part 2
+ *
+ * Revision 1.19 2000/11/01 14:05:02 calle
+ * - use module_init/module_exit from linux/init.h.
+ * - all static struct variables are initialized with "membername:" now.
+ * - avm_cs.c, let it work with newer pcmcia-cs.
+ *
* Revision 1.18 2000/07/20 10:22:27 calle
* - Made procfs function cleaner and removed variable "begin".
*
@@ -18,7 +30,7 @@
* Revision 1.15 2000/04/06 15:01:25 calle
* Bugfix: crash in capidrv.c when reseting a capi controller.
* - changed code order on remove of controller.
- * - using tq_schedule for notifier in kcapi.c.
+ * - using tq schedule for notifier in kcapi.c.
* - now using spin_lock_irqsave() and spin_unlock_irqrestore().
* strange: sometimes even MP hang on unload of isdn.o ...
*
@@ -110,6 +122,7 @@
#include <linux/capi.h>
#include <linux/kernelcapi.h>
#include <linux/locks.h>
+#include <linux/init.h>
#include <asm/uaccess.h>
#include "capicmd.h"
#include "capiutil.h"
@@ -118,7 +131,7 @@
#include <linux/b1lli.h>
#endif
-static char *revision = "$Revision: 1.18 $";
+static char *revision = "$Revision: 1.21 $";
/* ------------------------------------------------------------- */
@@ -617,7 +630,9 @@
* of devices. Devices can only removed in
* user process, not in bh.
*/
- queue_task(&tq_state_notify, &tq_scheduler);
+ MOD_INC_USE_COUNT;
+ if (schedule_task(&tq_state_notify) == 0)
+ MOD_DEC_USE_COUNT;
return 0;
}
@@ -713,6 +728,7 @@
kfree(np);
MOD_DEC_USE_COUNT;
}
+ MOD_DEC_USE_COUNT;
}
/* -------- NCCI Handling ------------------------------------- */
@@ -1724,36 +1740,11 @@
EXPORT_SYMBOL(attach_capi_driver);
EXPORT_SYMBOL(detach_capi_driver);
-#ifndef MODULE
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1ISA
-extern int b1isa_init(void);
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCI
-extern int b1pci_init(void);
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_T1ISA
-extern int t1isa_init(void);
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCMCIA
-extern int b1pcmcia_init(void);
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_T1PCI
-extern int t1pci_init(void);
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_C4
-extern int c4_init(void);
-#endif
-#endif
-
/*
* init / exit functions
*/
-#ifdef MODULE
-#define kcapi_init init_module
-#endif
-
-int kcapi_init(void)
+static int __init kcapi_init(void)
{
char *p;
char rev[10];
@@ -1761,7 +1752,6 @@
MOD_INC_USE_COUNT;
skb_queue_head_init(&recv_queue);
- /* init_bh(CAPI_BH, do_capi_bh); */
tq_state_notify.routine = notify_handler;
tq_state_notify.data = 0;
@@ -1782,31 +1772,12 @@
printk(KERN_NOTICE "CAPI-driver Rev%s: loaded\n", rev);
#else
printk(KERN_NOTICE "CAPI-driver Rev%s: started\n", rev);
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1ISA
- (void)b1isa_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCI
- (void)b1pci_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_T1ISA
- (void)t1isa_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_B1PCMCIA
- (void)b1pcmcia_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_T1PCI
- (void)t1pci_init();
-#endif
-#ifdef CONFIG_ISDN_DRV_AVMB1_C4
- (void)c4_init();
-#endif
#endif
MOD_DEC_USE_COUNT;
return 0;
}
-#ifdef MODULE
-void cleanup_module(void)
+static void __exit kcapi_exit(void)
{
char rev[10];
char *p;
@@ -1822,4 +1793,6 @@
proc_capi_exit();
printk(KERN_NOTICE "CAPI-driver Rev%s: unloaded\n", rev);
}
-#endif
+
+module_init(kcapi_init);
+module_exit(kcapi_exit);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)