diff options
Diffstat (limited to 'kernel/printk.c')
-rw-r--r-- | kernel/printk.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/printk.c b/kernel/printk.c index 9dc8ea140426..2dc36b49d2d2 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
@@ -1072,13 +1072,15 @@ void printk_tick(void) | |||
1072 | 1072 | ||
1073 | int printk_needs_cpu(int cpu) | 1073 | int printk_needs_cpu(int cpu) |
1074 | { | 1074 | { |
1075 | if (unlikely(cpu_is_offline(cpu))) | ||
1076 | printk_tick(); | ||
1075 | return per_cpu(printk_pending, cpu); | 1077 | return per_cpu(printk_pending, cpu); |
1076 | } | 1078 | } |
1077 | 1079 | ||
1078 | void wake_up_klogd(void) | 1080 | void wake_up_klogd(void) |
1079 | { | 1081 | { |
1080 | if (!trace_override && waitqueue_active(&log_wait)) | 1082 | if (!trace_override && waitqueue_active(&log_wait)) |
1081 | __raw_get_cpu_var(printk_pending) = 1; | 1083 | this_cpu_write(printk_pending, 1); |
1082 | } | 1084 | } |
1083 | 1085 | ||
1084 | /** | 1086 | /** |