diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2017-01-01 21:25:25 -0500 |
---|---|---|
committer | Jessica Yu <jeyu@redhat.com> | 2017-01-17 13:56:45 -0500 |
commit | 5eb7c0d04f04a667c049fe090a95494a8de2955c (patch) | |
tree | 75787eea99a8783b0e3def175b543ec4e9925c57 | |
parent | 0c744ea4f77d72b3dcebb7a8f2684633ec79be88 (diff) |
taint/module: Fix problems when out-of-kernel driver defines true or false
Commit 7fd8329ba502 ("taint/module: Clean up global and module taint
flags handling") used the key words true and false as character members
of a new struct. These names cause problems when out-of-kernel modules
such as VirtualBox include their own definitions of true and false.
Fixes: 7fd8329ba502 ("taint/module: Clean up global and module taint flags handling")
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Petr Mladek <pmladek@suse.com>
Cc: Jessica Yu <jeyu@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Reported-by: Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Jessica Yu <jeyu@redhat.com>
-rw-r--r-- | include/linux/kernel.h | 4 | ||||
-rw-r--r-- | kernel/module.c | 2 | ||||
-rw-r--r-- | kernel/panic.c | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 56aec84237ad..cb09238f6d32 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -514,8 +514,8 @@ extern enum system_states { | |||
514 | #define TAINT_FLAGS_COUNT 16 | 514 | #define TAINT_FLAGS_COUNT 16 |
515 | 515 | ||
516 | struct taint_flag { | 516 | struct taint_flag { |
517 | char true; /* character printed when tainted */ | 517 | char c_true; /* character printed when tainted */ |
518 | char false; /* character printed when not tainted */ | 518 | char c_false; /* character printed when not tainted */ |
519 | bool module; /* also show as a per-module taint flag */ | 519 | bool module; /* also show as a per-module taint flag */ |
520 | }; | 520 | }; |
521 | 521 | ||
diff --git a/kernel/module.c b/kernel/module.c index 5088784c0cf9..38d4270925d4 100644 --- a/kernel/module.c +++ b/kernel/module.c | |||
@@ -1145,7 +1145,7 @@ static size_t module_flags_taint(struct module *mod, char *buf) | |||
1145 | 1145 | ||
1146 | for (i = 0; i < TAINT_FLAGS_COUNT; i++) { | 1146 | for (i = 0; i < TAINT_FLAGS_COUNT; i++) { |
1147 | if (taint_flags[i].module && test_bit(i, &mod->taints)) | 1147 | if (taint_flags[i].module && test_bit(i, &mod->taints)) |
1148 | buf[l++] = taint_flags[i].true; | 1148 | buf[l++] = taint_flags[i].c_true; |
1149 | } | 1149 | } |
1150 | 1150 | ||
1151 | return l; | 1151 | return l; |
diff --git a/kernel/panic.c b/kernel/panic.c index c51edaa04fce..901c4fb46002 100644 --- a/kernel/panic.c +++ b/kernel/panic.c | |||
@@ -355,7 +355,7 @@ const char *print_tainted(void) | |||
355 | for (i = 0; i < TAINT_FLAGS_COUNT; i++) { | 355 | for (i = 0; i < TAINT_FLAGS_COUNT; i++) { |
356 | const struct taint_flag *t = &taint_flags[i]; | 356 | const struct taint_flag *t = &taint_flags[i]; |
357 | *s++ = test_bit(i, &tainted_mask) ? | 357 | *s++ = test_bit(i, &tainted_mask) ? |
358 | t->true : t->false; | 358 | t->c_true : t->c_false; |
359 | } | 359 | } |
360 | *s = 0; | 360 | *s = 0; |
361 | } else | 361 | } else |