Merge branch 'this_cpu_ops' into for-2.6.38
[linux-2.6-block.git] / kernel / printk.c
index b032317f9964675c9d7c96b75a4b346f0e849ccc..6c39fff387024e17824042965569e9282205d8fb 100644 (file)
@@ -1082,13 +1082,15 @@ void printk_tick(void)
 
 int printk_needs_cpu(int cpu)
 {
+       if (unlikely(cpu_is_offline(cpu)))
+               printk_tick();
        return per_cpu(printk_pending, cpu);
 }
 
 void wake_up_klogd(void)
 {
        if (waitqueue_active(&log_wait))
-               __raw_get_cpu_var(printk_pending) = 1;
+               this_cpu_write(printk_pending, 1);
 }
 
 /**