diff options
Diffstat (limited to 'kernel/module.c')
-rw-r--r-- | kernel/module.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/module.c b/kernel/module.c index 93342d992f34..ef8cb70c6996 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -2487,6 +2487,9 @@ static int check_modinfo(struct module *mod, struct load_info *info) | |||
2487 | return -ENOEXEC; | 2487 | return -ENOEXEC; |
2488 | } | 2488 | } |
2489 | 2489 | ||
2490 | if (!get_modinfo(info, "intree")) | ||
2491 | add_taint_module(mod, TAINT_OOT_MODULE); | ||
2492 | |||
2490 | if (get_modinfo(info, "staging")) { | 2493 | if (get_modinfo(info, "staging")) { |
2491 | add_taint_module(mod, TAINT_CRAP); | 2494 | add_taint_module(mod, TAINT_CRAP); |
2492 | printk(KERN_WARNING "%s: module is from the staging directory," | 2495 | printk(KERN_WARNING "%s: module is from the staging directory," |
@@ -2878,8 +2881,7 @@ static struct module *load_module(void __user *umod, | |||
2878 | } | 2881 | } |
2879 | 2882 | ||
2880 | /* This has to be done once we're sure module name is unique. */ | 2883 | /* This has to be done once we're sure module name is unique. */ |
2881 | if (!mod->taints || mod->taints == (1U<<TAINT_CRAP)) | 2884 | dynamic_debug_setup(info.debug, info.num_debug); |
2882 | dynamic_debug_setup(info.debug, info.num_debug); | ||
2883 | 2885 | ||
2884 | /* Find duplicate symbols */ | 2886 | /* Find duplicate symbols */ |
2885 | err = verify_export_symbols(mod); | 2887 | err = verify_export_symbols(mod); |
@@ -2915,8 +2917,7 @@ static struct module *load_module(void __user *umod, | |||
2915 | module_bug_cleanup(mod); | 2917 | module_bug_cleanup(mod); |
2916 | 2918 | ||
2917 | ddebug: | 2919 | ddebug: |
2918 | if (!mod->taints || mod->taints == (1U<<TAINT_CRAP)) | 2920 | dynamic_debug_remove(info.debug); |
2919 | dynamic_debug_remove(info.debug); | ||
2920 | unlock: | 2921 | unlock: |
2921 | mutex_unlock(&module_mutex); | 2922 | mutex_unlock(&module_mutex); |
2922 | synchronize_sched(); | 2923 | synchronize_sched(); |
@@ -3257,6 +3258,8 @@ static char *module_flags(struct module *mod, char *buf) | |||
3257 | buf[bx++] = '('; | 3258 | buf[bx++] = '('; |
3258 | if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE)) | 3259 | if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE)) |
3259 | buf[bx++] = 'P'; | 3260 | buf[bx++] = 'P'; |
3261 | else if (mod->taints & (1 << TAINT_OOT_MODULE)) | ||
3262 | buf[bx++] = 'O'; | ||
3260 | if (mod->taints & (1 << TAINT_FORCED_MODULE)) | 3263 | if (mod->taints & (1 << TAINT_FORCED_MODULE)) |
3261 | buf[bx++] = 'F'; | 3264 | buf[bx++] = 'F'; |
3262 | if (mod->taints & (1 << TAINT_CRAP)) | 3265 | if (mod->taints & (1 << TAINT_CRAP)) |