Skip to contentSkip to conversation

module_param() primitive (2/3)

PATCH New Rusty Russell 1 participant 1 message Dec 13, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 module_param() primitive (2/3)

Linus, please apply.

This implements it in the module code, corrects the section name and clarifies a comment.

Name: Parameter Implementation for modules
Author: Rusty Russell
Status: Tested on 2.5.50
Depends: Module/param.patch.gz

D: This activates parameter parsing for module_param() declarations in modules.

kernel/module.c +3 -4
diff -urpN --exclude TAGS -X /home/rusty/devel/kernel/kernel-patches/current-dontdiff --minimal .31807-linux-2.5.43/kernel/module.c .31807-linux-2.5.43.updated/kernel/module.c
@@ -25,6 +25,7 @@
 #include <linux/fcntl.h>
 #include <linux/rcupdate.h>
 #include <linux/cpu.h>
+#include <linux/moduleparam.h>
 #include <asm/uaccess.h>
 #include <asm/semaphore.h>
 #include <asm/pgalloc.h>
@@ -882,7 +882,7 @@ static struct module *load_module(void *
 			/* Strings */
 			DEBUGP("String table found in section %u\n", i);
 			strindex = i;
-		} else if (strcmp(secstrings+sechdrs[i].sh_name, ".setup.init")
+		} else if (strcmp(secstrings+sechdrs[i].sh_name, "__param")
 			   == 0) {
 			/* Setup parameter info */
 			DEBUGP("Setup table found in section %u\n", i);
@@ -951,8 +952,7 @@ static struct module *load_module(void *
 	if (err < 0)
 		goto cleanup;
 
-#if 0 /* Needs param support */
-	/* Size of section 0 is 0, so this works well */
+	/* Size of section 0 is 0, so this works well if no params */
 	err = parse_args(mod->args,
 			 (struct kernel_param *)
 			 sechdrs[setupindex].sh_offset,
@@ -961,7 +961,6 @@ static struct module *load_module(void *
 			 NULL);
 	if (err < 0)
 		goto cleanup;
-#endif
 
 	/* Get rid of temporary copy */
 	vfree(hdr);

--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.