blob: 48cb703b29350934a95070a35f1c7a67aadb5da6 [file] [log] [blame]
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