Files
android_kernel_xiaomi_sm8450/include/linux
Mathieu Desnoyers 66cc69e34e Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE
Users have reported being unable to trace non-signed modules loaded
within a kernel supporting module signature.

This is caused by tracepoint.c:tracepoint_module_coming() refusing to
take into account tracepoints sitting within force-loaded modules
(TAINT_FORCED_MODULE). The reason for this check, in the first place, is
that a force-loaded module may have a struct module incompatible with
the layout expected by the kernel, and can thus cause a kernel crash
upon forced load of that module on a kernel with CONFIG_TRACEPOINTS=y.

Tracepoints, however, specifically accept TAINT_OOT_MODULE and
TAINT_CRAP, since those modules do not lead to the "very likely system
crash" issue cited above for force-loaded modules.

With kernels having CONFIG_MODULE_SIG=y (signed modules), a non-signed
module is tainted re-using the TAINT_FORCED_MODULE taint flag.
Unfortunately, this means that Tracepoints treat that module as a
force-loaded module, and thus silently refuse to consider any tracepoint
within this module.

Since an unsigned module does not fit within the "very likely system
crash" category of tainting, add a new TAINT_UNSIGNED_MODULE taint flag
to specifically address this taint behavior, and accept those modules
within Tracepoints. We use the letter 'X' as a taint flag character for
a module being loaded that doesn't know how to sign its name (proposed
by Steven Rostedt).

Also add the missing 'O' entry to trace event show_module_flags() list
for the sake of completeness.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
NAKed-by: Ingo Molnar <mingo@redhat.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: David Howells <dhowells@redhat.com>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2014-03-13 12:11:51 +10:30
..
2013-08-14 13:55:15 +05:30
2014-01-20 11:55:23 -08:00
2013-12-23 18:34:58 -08:00
2014-01-24 22:39:54 +01:00
2014-01-17 01:59:38 +01:00
2013-07-30 11:53:12 -04:00
2013-11-08 08:59:44 -07:00
2013-11-23 22:33:56 -08:00
2013-12-22 23:14:27 -08:00
2013-11-15 09:32:21 +09:00
2013-11-09 00:16:29 -05:00
2014-02-13 10:08:52 +05:30
2013-07-15 11:25:00 +09:30
2014-01-16 10:23:02 +10:30
2014-03-10 11:44:42 -04:00
2013-08-22 22:13:54 -07:00
2014-03-10 11:44:42 -04:00
2014-03-10 17:26:19 -07:00
2014-03-04 07:55:47 -08:00
2014-01-16 11:15:50 +01:00
2014-01-26 22:48:35 +01:00
2013-12-29 16:34:25 -05:00
2013-12-10 22:58:13 -08:00
2013-09-13 15:09:52 +02:00
2014-03-13 12:11:00 +10:30
2013-08-09 10:49:00 +02:00
2013-07-26 16:19:48 -07:00
2014-02-25 07:37:52 -08:00
2013-11-15 09:32:23 +09:00
2014-01-25 08:55:09 +01:00
2013-08-28 21:35:14 -07:00
2014-01-08 19:03:00 -02:00
2013-12-11 15:52:34 +01:00
2013-12-26 13:29:35 -05:00
2013-12-19 10:17:11 -07:00
2014-03-13 12:11:00 +10:30
2013-11-09 00:16:19 -05:00
2014-01-27 21:02:39 -08:00
2013-11-09 00:16:19 -05:00
2013-07-03 16:08:05 -07:00
2013-10-14 17:15:48 +02:00
2014-01-25 03:14:05 -05:00
2014-01-27 19:27:53 -05:00
2014-01-13 14:29:49 -08:00
2014-01-03 11:22:21 -08:00
2014-01-22 19:36:57 +01:00
2013-10-17 00:36:06 +02:00
2013-12-18 19:04:50 -08:00
2013-07-03 16:08:05 -07:00
2014-01-28 13:20:09 -08:00
2013-12-19 19:09:38 -05:00
2014-01-27 21:02:39 -08:00
2013-09-10 18:56:32 -04:00
2013-09-12 15:38:02 -07:00
2013-12-08 16:56:05 -08:00
2013-08-05 10:52:36 -06:00
2013-10-17 15:53:09 -04:00
2013-07-10 18:11:34 -07:00
2014-01-30 16:56:55 -08:00