Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4efb442c authored by Borislav Petkov's avatar Borislav Petkov Committed by Linus Torvalds
Browse files

kernel/panic.c: add TAINT_AUX

This is the gist of a patch which we've been forward-porting in our
kernels for a long time now and it probably would make a good sense to
have such TAINT_AUX flag upstream which can be used by each distro etc,
how they see fit.  This way, we won't need to forward-port a distro-only
version indefinitely.

Add an auxiliary taint flag to be used by distros and others.  This
obviates the need to forward-port whatever internal solutions people
have in favor of a single flag which they can map arbitrarily to a
definition of their pleasing.

The "X" mnemonic could also mean eXternal, which would be taint from a
distro or something else but not the upstream kernel.  We will use it to
mark modules for which we don't provide support.  I.e., a really
eXternal module.

Link: http://lkml.kernel.org/r/20170911134533.dp5mtyku5bongx4c@pd.tnic


Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Cc: Kees Cook <keescook@chromium.org>
Cc: Jessica Yu <jeyu@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Jiri Slaby <jslaby@suse.cz>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Michal Marek <mmarek@suse.cz>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e8cfbc24
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -549,7 +549,8 @@ extern enum system_states {
#define TAINT_UNSIGNED_MODULE		13
#define TAINT_UNSIGNED_MODULE		13
#define TAINT_SOFTLOCKUP		14
#define TAINT_SOFTLOCKUP		14
#define TAINT_LIVEPATCH			15
#define TAINT_LIVEPATCH			15
#define TAINT_FLAGS_COUNT		16
#define TAINT_AUX			16
#define TAINT_FLAGS_COUNT		17


struct taint_flag {
struct taint_flag {
	char c_true;	/* character printed when tainted */
	char c_true;	/* character printed when tainted */
+2 −0
Original line number Original line Diff line number Diff line
@@ -324,6 +324,7 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
	{ 'E', ' ', true },	/* TAINT_UNSIGNED_MODULE */
	{ 'E', ' ', true },	/* TAINT_UNSIGNED_MODULE */
	{ 'L', ' ', false },	/* TAINT_SOFTLOCKUP */
	{ 'L', ' ', false },	/* TAINT_SOFTLOCKUP */
	{ 'K', ' ', true },	/* TAINT_LIVEPATCH */
	{ 'K', ' ', true },	/* TAINT_LIVEPATCH */
	{ 'X', ' ', true },	/* TAINT_AUX */
};
};


/**
/**
@@ -345,6 +346,7 @@ const struct taint_flag taint_flags[TAINT_FLAGS_COUNT] = {
 *  '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.
 *  'K' - Kernel has been live patched.
 *  'X' - Auxiliary taint, for distros' use.
 *
 *
 *	The string is overwritten by the next call to print_tainted().
 *	The string is overwritten by the next call to print_tainted().
 */
 */