diff options
| author | Stephen Hemminger <shemminger@osdl.org> | 2003-09-25 11:26:49 -0400 |
|---|---|---|
| committer | Stephen Hemminger <shemminger@osdl.org> | 2003-09-25 11:26:49 -0400 |
| commit | e7d92548cda32771908458d2a7edf4170d555476 (patch) | |
| tree | 17640e7617a162d27dad095cee3791996814e624 | |
| parent | 73cc094431e66210df3ed25610d01831b7e32ea4 (diff) | |
[PATCH] (1/8) arlan -- merge arlan-proc with main code
The arlan driver tries to build it's /proc interface into a separate module,
which leads to circular dependencies and other ugliness. This patch
moves arlan.c to arlan-main.c and changes initialization builds one module arlan.o
Patch is for 2.6.0-test5
| -rw-r--r-- | drivers/net/wireless/Makefile | 4 | ||||
| -rw-r--r-- | drivers/net/wireless/arlan-main.c (renamed from drivers/net/wireless/arlan.c) | 17 | ||||
| -rw-r--r-- | drivers/net/wireless/arlan-proc.c | 22 | ||||
| -rw-r--r-- | drivers/net/wireless/arlan.h | 7 |
4 files changed, 16 insertions, 34 deletions
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index b37c4faaf3ff..0d3c123c05e2 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -3,7 +3,9 @@ # obj-$(CONFIG_STRIP) += strip.o -obj-$(CONFIG_ARLAN) += arlan.o arlan-proc.o +obj-$(CONFIG_ARLAN) += arlan.o + +arlan-objs := arlan-main.o arlan-proc.o # Obsolete cards obj-$(CONFIG_WAVELAN) += wavelan.o diff --git a/drivers/net/wireless/arlan.c b/drivers/net/wireless/arlan-main.c index 4c72ab91fbd7..2fe564e5008f 100644 --- a/drivers/net/wireless/arlan.c +++ b/drivers/net/wireless/arlan-main.c @@ -91,11 +91,6 @@ MODULE_PARM_DESC(arlan_exit_debug, "(ignored)"); MODULE_PARM_DESC(arlan_entry_and_exit_debug, "(ignored)"); #endif -EXPORT_SYMBOL(arlan_device); -EXPORT_SYMBOL(arlan_conf); -EXPORT_SYMBOL(last_arlan); - - // #warning kernel 2.1.110 tested #define myATOMIC_INIT(a,b) atomic_set(&(a),b) @@ -127,8 +122,6 @@ static void arlan_process_interrupt (struct net_device * dev); static void arlan_tx_timeout (struct net_device *dev); int arlan_command(struct net_device * dev, int command); -EXPORT_SYMBOL(arlan_command); - static inline long long arlan_time(void) { struct timeval timev; @@ -1327,12 +1320,6 @@ static int arlan_open(struct net_device *dev) mdelay(200); add_timer(&priv->timer); -#ifdef CONFIG_PROC_FS -#ifndef MODULE - if (arlan_device[0]) - init_arlan_proc(); -#endif -#endif ARLAN_DEBUG_EXIT("arlan_open"); return 0; } @@ -2037,6 +2024,7 @@ int init_module(void) arlan_probe_everywhere(arlan_device[i]); // arlan_command(arlan_device[i], ARLAN_COMMAND_POWERDOWN ); } + init_arlan_proc(); printk(KERN_INFO "Arlan driver %s\n", arlan_version); ARLAN_DEBUG_EXIT("init_module"); return 0; @@ -2052,6 +2040,9 @@ void cleanup_module(void) IFDEBUG(ARLAN_DEBUG_SHUTDOWN) printk(KERN_INFO "arlan: unloading module\n"); + + cleanup_arlan_proc(); + for (i = 0; i < MAX_ARLANS; i++) { if (arlan_device[i]) diff --git a/drivers/net/wireless/arlan-proc.c b/drivers/net/wireless/arlan-proc.c index 18f055132858..7bc81dca6bcd 100644 --- a/drivers/net/wireless/arlan-proc.c +++ b/drivers/net/wireless/arlan-proc.c @@ -1233,7 +1233,7 @@ static ctl_table arlan_root_table[] = static struct ctl_table_header *arlan_device_sysctl_header; -int init_arlan_proc(void) +int __init init_arlan_proc(void) { int i = 0; @@ -1247,25 +1247,11 @@ int init_arlan_proc(void) return 0; -}; - - - -#ifdef MODULE - -int init_module(void) -{ - - return init_arlan_proc(); -}; +} -void cleanup_module(void) +void __exit cleanup_arlan_proc(void) { unregister_sysctl_table(arlan_device_sysctl_header); arlan_device_sysctl_header = NULL; - return; -}; - -#endif // MODULE -MODULE_LICENSE("GPL"); +} diff --git a/drivers/net/wireless/arlan.h b/drivers/net/wireless/arlan.h index aacef0d77a56..0bb67e2fafd6 100644 --- a/drivers/net/wireless/arlan.h +++ b/drivers/net/wireless/arlan.h @@ -39,9 +39,12 @@ #define ARLAN_RCV_PROMISC 1 #define ARLAN_RCV_CONTROL 2 - #ifdef CONFIG_PROC_FS -extern int init_arlan_proc(void); +extern int init_arlan_proc(void); +extern void cleanup_arlan_proc(void); +#else +#define init_arlan_proc() (0) +#define cleanup_arlan_proc() do { } while (0); #endif extern struct net_device *arlan_device[MAX_ARLANS]; |
