summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2003-09-25 11:26:49 -0400
committerStephen Hemminger <shemminger@osdl.org>2003-09-25 11:26:49 -0400
commite7d92548cda32771908458d2a7edf4170d555476 (patch)
tree17640e7617a162d27dad095cee3791996814e624
parent73cc094431e66210df3ed25610d01831b7e32ea4 (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/Makefile4
-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.c22
-rw-r--r--drivers/net/wireless/arlan.h7
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];