linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix usage of true and false as field names in struct taint_flag
@ 2016-12-26 23:49 Valdis Kletnieks
  2017-01-03 19:55 ` Jessica Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Valdis Kletnieks @ 2016-12-26 23:49 UTC (permalink / raw)
  To: Petr Mladek, Jessica Yu; +Cc: linux-kernel, Andrew Morton, Al Viro

The commit 7fd8329ba502ef76dd ("taint/module: Clean up global and
module taint flags handling") contains this chunk: 

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

and hilarity ensues when an out-of-tree module has this:

# ifndef true
#  define true  (1)
# endif
# ifndef false
#  define false (0)
# endif

Change the field names to not shadow something likely to be used
by third-party modules.

Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
Reviewed-by: Petr Mladek <pmladek@suse.com>

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 56aec84237ad..420d4b87feb0 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -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 tainted;	/* character printed when tainted */
+	char untainted;	/* character printed when not tainted */
 	bool module;	/* also show as a per-module taint flag */
 };
 
diff --git a/kernel/module.c b/kernel/module.c
index f7482db0f843..6a0434de5dbd 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -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].tainted;
 	}
 
 	return l;
diff --git a/kernel/panic.c b/kernel/panic.c
index c51edaa04fce..e02da0928910 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -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->tainted : t->untainted;
 		}
 		*s = 0;
 	} else

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: Fix usage of true and false as field names in struct taint_flag
  2016-12-26 23:49 [PATCH] Fix usage of true and false as field names in struct taint_flag Valdis Kletnieks
@ 2017-01-03 19:55 ` Jessica Yu
  2017-01-03 20:22   ` Valdis.Kletnieks
  0 siblings, 1 reply; 3+ messages in thread
From: Jessica Yu @ 2017-01-03 19:55 UTC (permalink / raw)
  To: Valdis Kletnieks
  Cc: Petr Mladek, linux-kernel, Andrew Morton, Al Viro, Rusty Russell,
	Larry Finger

+++ Valdis Kletnieks [26/12/16 18:49 -0500]:
>The commit 7fd8329ba502ef76dd ("taint/module: Clean up global and
>module taint flags handling") contains this chunk:
>
>+struct taint_flag {
>+       char true;      /* character printed when tainted */
>+       char false;     /* character printed when not tainted */
>+       bool module;    /* also show as a per-module taint flag */
>+};
>
>and hilarity ensues when an out-of-tree module has this:
>
># ifndef true
>#  define true  (1)
># endif
># ifndef false
>#  define false (0)
># endif
>
>Change the field names to not shadow something likely to be used
>by third-party modules.
>
>Signed-off-by: Valdis Kletnieks <valdis.kletnieks@vt.edu>
>Reviewed-by: Petr Mladek <pmladek@suse.com>

[ added Rusty and Larry to CC ]

Hm, you and Larry Finger sent the exact same fix at around the same
time, although I think people are leaning towards the other patch
(it's just a naming preference), see here:

   https://lkml.kernel.org/r/20161224195532.15128-1-Larry.Finger@lwfinger.net

I plan to take the other patch, but since you first reported the
issue to lkml, and additionally sent a fix in response, I will add a
Reported-by: tag to the patch so I can also give you credit.

Thanks Valdis!

Jessica

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Fix usage of true and false as field names in struct taint_flag
  2017-01-03 19:55 ` Jessica Yu
@ 2017-01-03 20:22   ` Valdis.Kletnieks
  0 siblings, 0 replies; 3+ messages in thread
From: Valdis.Kletnieks @ 2017-01-03 20:22 UTC (permalink / raw)
  To: Jessica Yu
  Cc: Petr Mladek, linux-kernel, Andrew Morton, Al Viro, Rusty Russell,
	Larry Finger

[-- Attachment #1: Type: text/plain, Size: 547 bytes --]

On Tue, 03 Jan 2017 11:55:36 -0800, Jessica Yu said:

> Hm, you and Larry Finger sent the exact same fix at around the same
> time, although I think people are leaning towards the other patch
> (it's just a naming preference), see here:
>
>    https://lkml.kernel.org/r/20161224195532.15128-1-Larry.Finger@lwfinger.net
>
> I plan to take the other patch, but since you first reported the
> issue to lkml, and additionally sent a fix in response, I will add a
> Reported-by: tag to the patch so I can also give you credit.

Works for me, thanks..


[-- Attachment #2: Type: application/pgp-signature, Size: 484 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-03 21:14 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-26 23:49 [PATCH] Fix usage of true and false as field names in struct taint_flag Valdis Kletnieks
2017-01-03 19:55 ` Jessica Yu
2017-01-03 20:22   ` Valdis.Kletnieks

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).