Skip to content

Commit

Permalink
taint/module: Fix problems when out-of-kernel driver defines true or …
Browse files Browse the repository at this point in the history
…false

Commit 7fd8329 ("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: 7fd8329 ("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>
  • Loading branch information
lwfinger authored and flaming-toast committed Jan 17, 2017
1 parent 0c744ea commit 5eb7c0d
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions include/linux/kernel.h
Expand Up @@ -514,8 +514,8 @@ extern enum system_states {
#define TAINT_FLAGS_COUNT 16

struct taint_flag {
char true; /* character printed when tainted */
char false; /* character printed when not tainted */
char c_true; /* character printed when tainted */
char c_false; /* character printed when not tainted */
bool module; /* also show as a per-module taint flag */
};

Expand Down
2 changes: 1 addition & 1 deletion kernel/module.c
Expand Up @@ -1145,7 +1145,7 @@ static size_t module_flags_taint(struct module *mod, char *buf)

for (i = 0; i < TAINT_FLAGS_COUNT; i++) {
if (taint_flags[i].module && test_bit(i, &mod->taints))
buf[l++] = taint_flags[i].true;
buf[l++] = taint_flags[i].c_true;
}

return l;
Expand Down
2 changes: 1 addition & 1 deletion kernel/panic.c
Expand Up @@ -355,7 +355,7 @@ const char *print_tainted(void)
for (i = 0; i < TAINT_FLAGS_COUNT; i++) {
const struct taint_flag *t = &taint_flags[i];
*s++ = test_bit(i, &tainted_mask) ?
t->true : t->false;
t->c_true : t->c_false;
}
*s = 0;
} else
Expand Down

0 comments on commit 5eb7c0d

Please sign in to comment.