Skip to content

Commit c5f4546

Browse files
sjenningJiri Kosina
authored andcommitted
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>
1 parent 97bf6af commit c5f4546

4 files changed

Lines changed: 6 additions & 0 deletions

File tree

Documentation/oops-tracing.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,8 @@ characters, each representing a particular tainted value.
270270

271271
15: 'L' if a soft lockup has previously occurred on the system.
272272

273+
16: 'K' if the kernel has been live patched.
274+
273275
The primary reason for the 'Tainted: ' string is to tell kernel
274276
debuggers if this is a clean kernel or if anything unusual has
275277
occurred. Tainting is permanent: even if an offending module is

Documentation/sysctl/kernel.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -843,6 +843,7 @@ can be ORed together:
843843
8192 - An unsigned module has been loaded in a kernel supporting module
844844
signature.
845845
16384 - A soft lockup has previously occurred on the system.
846+
32768 - The kernel has been live patched.
846847

847848
==============================================================
848849

include/linux/kernel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,7 @@ extern enum system_states {
471471
#define TAINT_OOT_MODULE 12
472472
#define TAINT_UNSIGNED_MODULE 13
473473
#define TAINT_SOFTLOCKUP 14
474+
#define TAINT_LIVEPATCH 15
474475

475476
extern const char hex_asc[];
476477
#define hex_asc_lo(x) hex_asc[((x) & 0x0f)]

kernel/panic.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ static const struct tnt tnts[] = {
226226
{ TAINT_OOT_MODULE, 'O', ' ' },
227227
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
228228
{ TAINT_SOFTLOCKUP, 'L', ' ' },
229+
{ TAINT_LIVEPATCH, 'K', ' ' },
229230
};
230231

231232
/**
@@ -246,6 +247,7 @@ static const struct tnt tnts[] = {
246247
* 'O' - Out-of-tree module has been loaded.
247248
* 'E' - Unsigned module has been loaded.
248249
* 'L' - A soft lockup has previously occurred.
250+
* 'K' - Kernel has been live patched.
249251
*
250252
* The string is overwritten by the next call to print_tainted().
251253
*/

0 commit comments

Comments
 (0)