On Mon, May 31, 2010 at 04:57:15PM -0700, Kevin Cernekee wrote: > /** > + * console_cpu_notify - print deferred console messages after CPU hotplug > + * > + * If printk() is called from a CPU that is not online yet, the messages > + * will be spooled but will not show up on the console. This function is > + * called when a new CPU comes online and ensures that any such output > + * gets printed. > + */ > +static int __cpuinit console_cpu_notify(struct notifier_block *self, > + unsigned long action, void *hcpu) > +{ > + switch (action) { > + case CPU_ONLINE: > + case CPU_UP_CANCELED: > + if (try_acquire_console_sem() == 0) > + release_console_sem(); > + } > + return NOTIFY_OK; > +} > + > +static struct notifier_block __cpuinitdata console_nb = { > + .notifier_call = console_cpu_notify, > +}; > + > +static int __init console_notifier_init(void) > +{ > + register_cpu_notifier(&console_nb); > + return 0; > +} If this is to be entirely restricted to CPU hotplug then you could use the hotcpu notifier here instead of the open-coded cpu notifier directly, the former wraps to the latter in the CPU hotplug case and is simply a nop for the regular SMP case.