History

module: fix kdb's illicit use of struct module_use.

Linus changed the structure, and luckily this didn't compile any more.

Rusty Russell committed 16 years ago

Commit c8e21ce1 parent 2c02dfe3 files · +11 −19Browse files

Unified · Split

3 files
  1. include/linux/module.h +7 −0
  2. kernel/debug/kdb/kdb_main.c +3 −9
  3. kernel/module.c +1 −10
include/linux/module.h+7−0
@@ -181,6 +181,13 @@ void *__symbol_get(const char *symbol); · 180 unmodified lines
181void *__symbol_get_gpl(const char *symbol);181void *__symbol_get_gpl(const char *symbol);
182#define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x)))182#define symbol_get(x) ((typeof(&x))(__symbol_get(MODULE_SYMBOL_PREFIX #x)))
183 183
184/* modules using other modules: kdb wants to see this. */
185struct module_use {
186 struct list_head source_list;
187 struct list_head target_list;
188 struct module *source, *target;
189};
190
184#ifndef __GENKSYMS__191#ifndef __GENKSYMS__
185#ifdef CONFIG_MODVERSIONS192#ifdef CONFIG_MODVERSIONS
186/* Mark the CRC weak since genksyms apparently decides not to193/* Mark the CRC weak since genksyms apparently decides not to
kernel/debug/kdb/kdb_main.c+3−9
@@ -1857,12 +1857,6 @@ static int kdb_ef(int argc, const char **argv) · 1856 unmodified lines
1857}1857}
1858 1858
1859#if defined(CONFIG_MODULES)1859#if defined(CONFIG_MODULES)
1860/* modules using other modules */
1861struct module_use {
1862 struct list_head list;
1863 struct module *module_which_uses;
1864};
1865
1866/*1860/*
1867 * kdb_lsmod - This function implements the 'lsmod' command. Lists1861 * kdb_lsmod - This function implements the 'lsmod' command. Lists
1868 * currently loaded kernel modules.1862 * currently loaded kernel modules.
@@ -1894,9 +1888,9 @@ static int kdb_lsmod(int argc, const char **argv) · 25 unmodified lines
1894 {1888 {
1895 struct module_use *use;1889 struct module_use *use;
1896 kdb_printf(" [ ");1890 kdb_printf(" [ ");
1897 list_for_each_entry(use, &mod->modules_which_use_me,1891 list_for_each_entry(use, &mod->source_list,
1898 list)1892 source_list)
1899 kdb_printf("%s ", use->module_which_uses->name);1893 kdb_printf("%s ", use->target->name);
1900 kdb_printf("]\n");1894 kdb_printf("]\n");
1901 }1895 }
1902#endif1896#endif
kernel/module.c+1−10
@@ -536,14 +536,6 @@ static void module_unload_init(struct module *mod) · 535 unmodified lines
536 mod->waiter = current;536 mod->waiter = current;
537}537}
538 538
539/* modules using other modules */
540struct module_use
541{
542 struct list_head source_list;
543 struct list_head target_list;
544 struct module *source, *target;
545};
546
547/* Does a already use b? */539/* Does a already use b? */
548static int already_uses(struct module *a, struct module *b)540static int already_uses(struct module *a, struct module *b)
549{541{
@@ -589,8 +581,7 @@ static int add_module_usage(struct module *a, struct module *b) · 39 unmodified lines
589/* Module a uses b */581/* Module a uses b */
590int use_module(struct module *a, struct module *b)582int use_module(struct module *a, struct module *b)
591{583{
592 struct module_use *use;584 int err;
593 int no_warn, err;
594 585
595 if (b == NULL || already_uses(a, b)) return 1;586 if (b == NULL || already_uses(a, b)) return 1;
596 587