OSDN Git Service

timer_list: Reduce SEQ_printf footprint
authorJoe Perches <joe@perches.com>
Fri, 17 Apr 2015 18:39:18 +0000 (11:39 -0700)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 22 Apr 2015 10:03:39 +0000 (12:03 +0200)
This macro can be converted to a static function to reduce
object size.

(x86-64 defconfig)
$ size kernel/time/timer_list.o*
   text    data     bss     dec     hex filename
   6583       8       0    6591    19bf kernel/time/timer_list.o.old
   4647       8       0    4655    122f kernel/time/timer_list.o.new

Signed-off-by: Joe Perches <joe@perches.com>
Cc: John Stultz <john.stultz@linaro.org>
Link: http://lkml.kernel.org/r/1429295958.2850.104.camel@perches.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
kernel/time/timer_list.c

index e878c2e..5960af2 100644 (file)
@@ -35,13 +35,20 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases);
  * This allows printing both to /proc/timer_list and
  * to the console (on SysRq-Q):
  */
-#define SEQ_printf(m, x...)                    \
- do {                                          \
-       if (m)                                  \
-               seq_printf(m, x);               \
-       else                                    \
-               printk(x);                      \
- } while (0)
+__printf(2, 3)
+static void SEQ_printf(struct seq_file *m, const char *fmt, ...)
+{
+       va_list args;
+
+       va_start(args, fmt);
+
+       if (m)
+               seq_vprintf(m, fmt, args);
+       else
+               vprintk(fmt, args);
+
+       va_end(args);
+}
 
 static void print_name_offset(struct seq_file *m, void *sym)
 {