Linus changed the structure, and luckily this didn't compile any more.
Unified · Split
| @@ -181,6 +181,13 @@ void *__symbol_get(const char *symbol); · 180 unmodified lines | ||
| 181 | 181 | void *__symbol_get_gpl(const char *symbol); |
| 182 | 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. */ | |
| 185 | +struct module_use { | |
| 186 | + struct list_head source_list; | |
| 187 | + struct list_head target_list; | |
| 188 | + struct module *source, *target; | |
| 189 | +}; | |
| 190 | + | |
| 184 | 191 | #ifndef __GENKSYMS__ |
| 185 | 192 | #ifdef CONFIG_MODVERSIONS |
| 186 | 193 | /* Mark the CRC weak since genksyms apparently decides not to |
| @@ -1857,12 +1857,6 @@ static int kdb_ef(int argc, const char **argv) · 1856 unmodified lines | ||
| 1857 | 1857 | } |
| 1858 | 1858 | |
| 1859 | 1859 | #if defined(CONFIG_MODULES) |
| 1860 | −/* modules using other modules */ | |
| 1861 | −struct module_use { | |
| 1862 | − struct list_head list; | |
| 1863 | − struct module *module_which_uses; | |
| 1864 | −}; | |
| 1865 | − | |
| 1866 | 1860 | /* |
| 1867 | 1861 | * kdb_lsmod - This function implements the 'lsmod' command. Lists |
| 1868 | 1862 | * currently loaded kernel modules. |
| @@ -1894,9 +1888,9 @@ static int kdb_lsmod(int argc, const char **argv) · 25 unmodified lines | ||
| 1894 | 1888 | { |
| 1895 | 1889 | struct module_use *use; |
| 1896 | 1890 | kdb_printf(" [ "); |
| 1897 | − list_for_each_entry(use, &mod->modules_which_use_me, | |
| 1898 | − list) | |
| 1899 | − kdb_printf("%s ", use->module_which_uses->name); | |
| 1891 | + list_for_each_entry(use, &mod->source_list, | |
| 1892 | + source_list) | |
| 1893 | + kdb_printf("%s ", use->target->name); | |
| 1900 | 1894 | kdb_printf("]\n"); |
| 1901 | 1895 | } |
| 1902 | 1896 | #endif |
| @@ -536,14 +536,6 @@ static void module_unload_init(struct module *mod) · 535 unmodified lines | ||
| 536 | 536 | mod->waiter = current; |
| 537 | 537 | } |
| 538 | 538 | |
| 539 | −/* modules using other modules */ | |
| 540 | −struct module_use | |
| 541 | −{ | |
| 542 | − struct list_head source_list; | |
| 543 | − struct list_head target_list; | |
| 544 | − struct module *source, *target; | |
| 545 | −}; | |
| 546 | − | |
| 547 | 539 | /* Does a already use b? */ |
| 548 | 540 | static 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 | 581 | /* Module a uses b */ |
| 590 | 582 | int use_module(struct module *a, struct module *b) |
| 591 | 583 | { |
| 592 | − struct module_use *use; | |
| 593 | − int no_warn, err; | |
| 584 | + int err; | |
| 594 | 585 | |
| 595 | 586 | if (b == NULL || already_uses(a, b)) return 1; |
| 596 | 587 | |