On 03/15/2012 04:35 AM, Peter Zijlstra wrote: > On Thu, 2012-03-15 at 07:19 +1100, Stephen Rothwell wrote: >> On Wed, 14 Mar 2012 08:56:22 -0700 Randy Dunlap <rdunlap@xxxxxxxxxxxx> wrote: >>> >>> on x86_64: >>> >>> kernel/printk.c:1230:5: error: redefinition of 'printk_sched' >>> include/linux/printk.h:136:5: note: previous definition of 'printk_sched' was here >> >> Caused by commit 3ccf3e830615 ("printk/sched: Introduce special >> printk_sched() for those awkward moments") from the tip tree. The >> declaration in include/linux/printk.h has alternatives determined by >> CONFIG_PRINTK, but the definition in kernel/printk.c is not so >> protected ... > > Ingo, could you stick this on top.. ? Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxx> Thanks. > --- > Subject: printk: Make it compile with !CONFIG_PRINTK > > Commit 3ccf3e830615 ("printk/sched: Introduce special printk_sched() for > those awkward moments") overlooked an #ifdef, so move code around to > respect these directives. > > Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Signed-off-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx> > --- > kernel/printk.c | 40 ++++++++++++++++++++-------------------- > 1 files changed, 20 insertions(+), 20 deletions(-) > > diff --git a/kernel/printk.c b/kernel/printk.c > index 8b6981e..b663c2c 100644 > --- a/kernel/printk.c > +++ b/kernel/printk.c > @@ -1227,26 +1227,6 @@ int is_console_locked(void) > static DEFINE_PER_CPU(int, printk_pending); > static DEFINE_PER_CPU(char [PRINTK_BUF_SIZE], printk_sched_buf); > > -int printk_sched(const char *fmt, ...) > -{ > - unsigned long flags; > - va_list args; > - char *buf; > - int r; > - > - local_irq_save(flags); > - buf = __get_cpu_var(printk_sched_buf); > - > - va_start(args, fmt); > - r = vsnprintf(buf, PRINTK_BUF_SIZE, fmt, args); > - va_end(args); > - > - __this_cpu_or(printk_pending, PRINTK_PENDING_SCHED); > - local_irq_restore(flags); > - > - return r; > -} > - > void printk_tick(void) > { > if (__this_cpu_read(printk_pending)) { > @@ -1663,6 +1643,26 @@ late_initcall(printk_late_init); > > #if defined CONFIG_PRINTK > > +int printk_sched(const char *fmt, ...) > +{ > + unsigned long flags; > + va_list args; > + char *buf; > + int r; > + > + local_irq_save(flags); > + buf = __get_cpu_var(printk_sched_buf); > + > + va_start(args, fmt); > + r = vsnprintf(buf, PRINTK_BUF_SIZE, fmt, args); > + va_end(args); > + > + __this_cpu_or(printk_pending, PRINTK_PENDING_SCHED); > + local_irq_restore(flags); > + > + return r; > +} > + > /* > * printk rate limiting, lifted from the networking subsystem. > * > > -- -- ~Randy -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html