diff options
Diffstat (limited to 'kernel/tracepoint.c')
-rw-r--r-- | kernel/tracepoint.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c index 65d9f9459a75..50f8329c2042 100644 --- a/kernel/tracepoint.c +++ b/kernel/tracepoint.c @@ -458,6 +458,11 @@ EXPORT_SYMBOL_GPL(tracepoint_probe_unregister); #ifdef CONFIG_MODULES +bool trace_module_has_bad_taint(struct module *mod) +{ + return mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP)); +} + static int tracepoint_module_coming(struct module *mod) { struct tp_module *tp_mod; @@ -471,7 +476,7 @@ static int tracepoint_module_coming(struct module *mod) * module headers (for forced load), to make sure we don't cause a crash. * Staging and out-of-tree GPL modules are fine. */ - if (mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP))) + if (trace_module_has_bad_taint(mod)) return 0; mutex_lock(&tracepoints_mutex); tp_mod = kmalloc(sizeof(struct tp_module), GFP_KERNEL); |