| From ea19a4e465a51064b7785d58f8ccaaa0a4692d1b Mon Sep 17 00:00:00 2001 |
| From: Thomas Gleixner <tglx@linutronix.de> |
| Date: Wed, 26 May 2010 16:48:23 +0200 |
| Subject: [PATCH] printk: Fix missing klogd wakeup |
| |
| commit ea17fed8d36978aa00f844949a1d820dfe58b992 in tip. |
| |
| The RT check for !in_atomic() && !irqs_disabled()) to prevent the |
| klogd wakeup is actually bogus as wake_up_klogd() is just setting the |
| needs print flag which is then evaluated from printk_tick() which does |
| the actual wakeup. |
| |
| Reported-by: Nikita V. Youshchenko <yoush@cs.msu.su> |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/kernel/printk.c b/kernel/printk.c |
| index 073d27f..bbce874 100644 |
| --- a/kernel/printk.c |
| +++ b/kernel/printk.c |
| @@ -1087,15 +1087,6 @@ void release_console_mutex(void) |
| raw_spin_unlock_irqrestore(&logbuf_lock, flags); |
| mutex_unlock(&console_mutex); |
| |
| - /* |
| - * On PREEMPT_RT kernels __wake_up may sleep, so wake syslogd |
| - * up only if we are in a preemptible section. We normally dont |
| - * printk from non-preemptible sections so this is for the emergency |
| - * case only. |
| - */ |
| -#ifdef CONFIG_PREEMPT_RT |
| - if (!in_atomic() && !irqs_disabled()) |
| -#endif |
| if (wake_klogd) |
| wake_up_klogd(); |
| } |
| -- |
| 1.7.1.1 |
| |