module: fix kdb's illicit use of struct module_use.
authorRusty Russell <rusty@rustcorp.com.au>
Sat, 5 Jun 2010 17:17:35 +0000 (11:17 -0600)
committerRusty Russell <rusty@rustcorp.com.au>
Sat, 5 Jun 2010 01:47:36 +0000 (11:17 +0930)
Linus changed the structure, and luckily this didn't compile any more.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: Martin Hicks <mort@sgi.com>
include/linux/module.h
kernel/debug/kdb/kdb_main.c
kernel/module.c

index 680db9e2ac365e4758abf45733493db3ac35044d..5d8fca5dcff5524e9485c582d391c4ab2fc20460 100644 (file)
@@ -181,6 +181,13 @@ void *__symbol_get(const char *symbol);
 void *__symbol_get_gpl(const char *symbol);
 #define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x)))
 
+/* modules using other modules: kdb wants to see this. */
+struct module_use {
+       struct list_head source_list;
+       struct list_head target_list;
+       struct module *source, *target;
+};
+
 #ifndef __GENKSYMS__
 #ifdef CONFIG_MODVERSIONS
 /* Mark the CRC weak since genksyms apparently decides not to
index b724c791b6d45d7bf39a32ca0b9d02881055de9d..184cd8209c365de082c70c354f25758d22339ed8 100644 (file)
@@ -1857,12 +1857,6 @@ static int kdb_ef(int argc, const char **argv)
 }
 
 #if defined(CONFIG_MODULES)
-/* modules using other modules */
-struct module_use {
-       struct list_head list;
-       struct module *module_which_uses;
-};
-
 /*
  * kdb_lsmod - This function implements the 'lsmod' command.  Lists
  *     currently loaded kernel modules.
@@ -1894,9 +1888,9 @@ static int kdb_lsmod(int argc, const char **argv)
                {
                        struct module_use *use;
                        kdb_printf(" [ ");
-                       list_for_each_entry(use, &mod->modules_which_use_me,
-                                           list)
-                               kdb_printf("%s ", use->module_which_uses->name);
+                       list_for_each_entry(use, &mod->source_list,
+                                           source_list)
+                               kdb_printf("%s ", use->target->name);
                        kdb_printf("]\n");
                }
 #endif
index be18c3e34684860e7fd394ed4c015fe67ddac7e8..bbb1d812c79c75e2bfe99cdf8c40cfdf1a1110a4 100644 (file)
@@ -536,14 +536,6 @@ static void module_unload_init(struct module *mod)
        mod->waiter = current;
 }
 
-/* modules using other modules */
-struct module_use
-{
-       struct list_head source_list;
-       struct list_head target_list;
-       struct module *source, *target;
-};
-
 /* Does a already use b? */
 static int already_uses(struct module *a, struct module *b)
 {
@@ -589,8 +581,7 @@ static int add_module_usage(struct module *a, struct module *b)
 /* Module a uses b */
 int use_module(struct module *a, struct module *b)
 {
-       struct module_use *use;
-       int no_warn, err;
+       int err;
 
        if (b == NULL || already_uses(a, b)) return 1;