forked from Minki/linux
module: fix kdb's illicit use of struct module_use.
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>
This commit is contained in:
parent
2c02dfe7fe
commit
c8e21ced08
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user