mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	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
					
				
					 3 changed files with 11 additions and 19 deletions
				
			
		|  | @ -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 a new issue
	
	 Rusty Russell
						Rusty Russell