From: <viro@www.linux.org.uk>

Registration of sysctls turned into module_init().


---

 drivers/parport/Makefile |    2 +-
 drivers/parport/init.c   |   25 -------------------------
 drivers/parport/procfs.c |   15 ++++++++-------
 include/linux/parport.h  |    2 --
 4 files changed, 9 insertions(+), 35 deletions(-)

diff -puN drivers/parport/init.c~parport-03-sysctls-use-module_init drivers/parport/init.c
--- 25/drivers/parport/init.c~parport-03-sysctls-use-module_init	2004-02-18 23:43:45.000000000 -0800
+++ 25-akpm/drivers/parport/init.c	2004-02-18 23:43:45.000000000 -0800
@@ -113,35 +113,10 @@ static int __init parport_setup (char *s
 
 __setup ("parport=", parport_setup);
 
-#endif
-
-#ifdef MODULE
-int init_module(void)
-{
-#ifdef CONFIG_SYSCTL
-	parport_default_proc_register ();
-#endif
-	return 0;
-}
-
-void cleanup_module(void)
-{
-#ifdef CONFIG_SYSCTL
-	parport_default_proc_unregister ();
-#endif
-}
-
-#else
-
 int __init parport_init (void)
 {
 	if (io[0] == PARPORT_DISABLE) 
 		return 1;
-
-#ifdef CONFIG_SYSCTL
-	parport_default_proc_register ();
-#endif
-
 #ifdef CONFIG_PARPORT_PC
 	parport_pc_init(io, io_hi, irq, dma);
 #endif
diff -puN drivers/parport/Makefile~parport-03-sysctls-use-module_init drivers/parport/Makefile
--- 25/drivers/parport/Makefile~parport-03-sysctls-use-module_init	2004-02-18 23:43:45.000000000 -0800
+++ 25-akpm/drivers/parport/Makefile	2004-02-18 23:43:45.000000000 -0800
@@ -2,7 +2,7 @@
 # Makefile for the kernel Parallel port device drivers.
 #
 
-parport-objs	:= share.o ieee1284.o ieee1284_ops.o init.o procfs.o
+parport-objs	:= share.o ieee1284.o ieee1284_ops.o procfs.o init.o
 
 ifeq ($(CONFIG_PARPORT_1284),y)
 	parport-objs	+= daisy.o probe.o
diff -puN drivers/parport/procfs.c~parport-03-sysctls-use-module_init drivers/parport/procfs.c
--- 25/drivers/parport/procfs.c~parport-03-sysctls-use-module_init	2004-02-18 23:43:45.000000000 -0800
+++ 25-akpm/drivers/parport/procfs.c	2004-02-18 23:43:45.000000000 -0800
@@ -14,6 +14,7 @@
 
 #include <linux/string.h>
 #include <linux/config.h>
+#include <linux/init.h>
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/kernel.h>
@@ -480,21 +481,20 @@ int parport_device_proc_unregister(struc
 	return 0;
 }
 
-int parport_default_proc_register(void)
+static int __init parport_default_proc_register(void)
 {
 	parport_default_sysctl_table.sysctl_header =
 		register_sysctl_table(parport_default_sysctl_table.dev_dir, 0);
 	return 0;
 }
 
-int parport_default_proc_unregister(void)
+static void __exit parport_default_proc_unregister(void)
 {
 	if (parport_default_sysctl_table.sysctl_header) {
 		unregister_sysctl_table(parport_default_sysctl_table.
 					sysctl_header);
 		parport_default_sysctl_table.sysctl_header = NULL;
 	}
-	return 0;
 }
 
 #else /* no sysctl or no procfs*/
@@ -519,12 +519,12 @@ int parport_device_proc_unregister(struc
 	return 0;
 }
 
-int parport_default_proc_register (void)
+static int __init parport_default_proc_register (void)
 {
 	return 0;
 }
 
-int parport_default_proc_unregister (void)
+static void __exit parport_default_proc_unregister (void)
 {
 	return 0;
 }
@@ -534,5 +534,6 @@ EXPORT_SYMBOL(parport_proc_register);
 EXPORT_SYMBOL(parport_proc_unregister);
 EXPORT_SYMBOL(parport_device_proc_register);
 EXPORT_SYMBOL(parport_device_proc_unregister);
-EXPORT_SYMBOL(parport_default_proc_register);
-EXPORT_SYMBOL(parport_default_proc_unregister);
+
+module_init(parport_default_proc_register)
+module_exit(parport_default_proc_unregister)
diff -puN include/linux/parport.h~parport-03-sysctls-use-module_init include/linux/parport.h
--- 25/include/linux/parport.h~parport-03-sysctls-use-module_init	2004-02-18 23:43:45.000000000 -0800
+++ 25-akpm/include/linux/parport.h	2004-02-18 23:43:45.000000000 -0800
@@ -538,8 +538,6 @@ extern int parport_proc_register(struct 
 extern int parport_proc_unregister(struct parport *pp);
 extern int parport_device_proc_register(struct pardevice *device);
 extern int parport_device_proc_unregister(struct pardevice *device);
-extern int parport_default_proc_register(void);
-extern int parport_default_proc_unregister(void);
 
 /* If PC hardware is the only type supported, we can optimise a bit.  */
 #if (defined(CONFIG_PARPORT_PC) || defined(CONFIG_PARPORT_PC_MODULE)) && !(defined(CONFIG_PARPORT_ARC) || defined(CONFIG_PARPORT_ARC_MODULE)) && !(defined(CONFIG_PARPORT_AMIGA) || defined(CONFIG_PARPORT_AMIGA_MODULE)) && !(defined(CONFIG_PARPORT_MFC3) || defined(CONFIG_PARPORT_MFC3_MODULE)) && !(defined(CONFIG_PARPORT_ATARI) || defined(CONFIG_PARPORT_ATARI_MODULE)) && !(defined(CONFIG_USB_USS720) || defined(CONFIG_USB_USS720_MODULE)) && !(defined(CONFIG_PARPORT_SUNBPP) || defined(CONFIG_PARPORT_SUNBPP_MODULE)) && !defined(CONFIG_PARPORT_OTHER)

_