kernel.h: remove initialization of bool in printk_once
Joe Perches [Tue, 15 Dec 2009 02:00:19 +0000 (18:00 -0800)]
Don't initialize __print_once.  Invert the test to reduce initialized
data.

defconfig before: $size vmlinux
   text    data     bss     dec     hex filename
6976022  679572 1359668 9015262  898fde vmlinux

defconfig after: $size vmlinux
   text    data     bss     dec     hex filename
6976006  679508 1359700 9015214  898fae vmlinux

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

include/linux/kernel.h

index a93cdd0..910db75 100644 (file)
@@ -251,10 +251,10 @@ extern int printk_delay_msec;
  * Print a one-time message (analogous to WARN_ONCE() et al):
  */
 #define printk_once(x...) ({                   \
-       static bool __print_once = true;        \
+       static bool __print_once;               \
                                                \
-       if (__print_once) {                     \
-               __print_once = false;           \
+       if (!__print_once) {                    \
+               __print_once = true;            \
                printk(x);                      \
        }                                       \
 })