|
@@ -631,6 +631,11 @@ void tracepoint_iter_reset(struct tracepoint_iter *iter)
|
|
|
EXPORT_SYMBOL_GPL(tracepoint_iter_reset);
|
|
|
|
|
|
#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, *iter;
|
|
@@ -641,7 +646,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);
|