Skip to content

Commit

Permalink
module: fix kdb's illicit use of struct module_use.
Browse files Browse the repository at this point in the history
Linus changed the structure, and luckily this didn't compile any more.

Reported-by: Stephen Rothwell <[email protected]>
Signed-off-by: Rusty Russell <[email protected]>
Cc: Jason Wessel <[email protected]>
Cc: Martin Hicks <[email protected]>
  • Loading branch information
rustyrussell committed Jun 5, 2010
1 parent 2c02dfe commit c8e21ce
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 19 deletions.
7 changes: 7 additions & 0 deletions include/linux/module.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 3 additions & 9 deletions kernel/debug/kdb/kdb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
11 changes: 1 addition & 10 deletions kernel/module.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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;

Expand Down

0 comments on commit c8e21ce

Please sign in to comment.