livepatch: kernel: add TAINT_LIVEPATCH
This adds a new taint flag to indicate when the kernel or a kernel module has been live patched. This will provide a clean indication in bug reports that live patching was used. Additionally, if the crash occurs in a live patched function, the live patch module will appear beside the patched function in the backtrace. Signed-off-by: Seth Jennings <sjenning@redhat.com> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Reviewed-by: Miroslav Benes <mbenes@suse.cz> Reviewed-by: Petr Mladek <pmladek@suse.cz> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
parent
97bf6af1f9
commit
c5f4546593
|
@ -270,6 +270,8 @@ characters, each representing a particular tainted value.
|
||||||
|
|
||||||
15: 'L' if a soft lockup has previously occurred on the system.
|
15: 'L' if a soft lockup has previously occurred on the system.
|
||||||
|
|
||||||
|
16: 'K' if the kernel has been live patched.
|
||||||
|
|
||||||
The primary reason for the 'Tainted: ' string is to tell kernel
|
The primary reason for the 'Tainted: ' string is to tell kernel
|
||||||
debuggers if this is a clean kernel or if anything unusual has
|
debuggers if this is a clean kernel or if anything unusual has
|
||||||
occurred. Tainting is permanent: even if an offending module is
|
occurred. Tainting is permanent: even if an offending module is
|
||||||
|
|
|
@ -843,6 +843,7 @@ can be ORed together:
|
||||||
8192 - An unsigned module has been loaded in a kernel supporting module
|
8192 - An unsigned module has been loaded in a kernel supporting module
|
||||||
signature.
|
signature.
|
||||||
16384 - A soft lockup has previously occurred on the system.
|
16384 - A soft lockup has previously occurred on the system.
|
||||||
|
32768 - The kernel has been live patched.
|
||||||
|
|
||||||
==============================================================
|
==============================================================
|
||||||
|
|
||||||
|
|
|
@ -471,6 +471,7 @@ extern enum system_states {
|
||||||
#define TAINT_OOT_MODULE 12
|
#define TAINT_OOT_MODULE 12
|
||||||
#define TAINT_UNSIGNED_MODULE 13
|
#define TAINT_UNSIGNED_MODULE 13
|
||||||
#define TAINT_SOFTLOCKUP 14
|
#define TAINT_SOFTLOCKUP 14
|
||||||
|
#define TAINT_LIVEPATCH 15
|
||||||
|
|
||||||
extern const char hex_asc[];
|
extern const char hex_asc[];
|
||||||
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
|
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]
|
||||||
|
|
|
@ -226,6 +226,7 @@ static const struct tnt tnts[] = {
|
||||||
{ TAINT_OOT_MODULE, 'O', ' ' },
|
{ TAINT_OOT_MODULE, 'O', ' ' },
|
||||||
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
|
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
|
||||||
{ TAINT_SOFTLOCKUP, 'L', ' ' },
|
{ TAINT_SOFTLOCKUP, 'L', ' ' },
|
||||||
|
{ TAINT_LIVEPATCH, 'K', ' ' },
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -246,6 +247,7 @@ static const struct tnt tnts[] = {
|
||||||
* 'O' - Out-of-tree module has been loaded.
|
* 'O' - Out-of-tree module has been loaded.
|
||||||
* 'E' - Unsigned module has been loaded.
|
* 'E' - Unsigned module has been loaded.
|
||||||
* 'L' - A soft lockup has previously occurred.
|
* 'L' - A soft lockup has previously occurred.
|
||||||
|
* 'K' - Kernel has been live patched.
|
||||||
*
|
*
|
||||||
* The string is overwritten by the next call to print_tainted().
|
* The string is overwritten by the next call to print_tainted().
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue