public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] panic: fix incomplete panic log in panic()
@ 2012-10-11  8:03 Qing Zhu
  2012-10-11 21:18 ` Andrew Morton
  0 siblings, 1 reply; 10+ messages in thread
From: Qing Zhu @ 2012-10-11  8:03 UTC (permalink / raw)
  To: akpm, mingo, ben, markivx, ak
  Cc: linux-kernel, cxie4, binw, wwang27, njun, Qing Zhu

Panic log should be printed on the console, but if someone lock the
console when panic, console won't print out panic log.

The incomplete panic log issue will happen in below scenarios:
1. One task call console_lock(), then panic happend before it call
console_unlock(). No panic log can be printed.
2. Cpu 0 call panic()->Cpu 1 call console_lock()->Cpu 0 call
smp_send_stop()
Cpu 1 will be stopped and can't unlock console,only top part of panic log
will be printed.

So unlock console anyway in panic() to keep panic log printed.

Signed-off-by: Qing Zhu <qzhu@marvell.com>
---
 kernel/panic.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/kernel/panic.c b/kernel/panic.c
index e1b2822..3924d25 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -23,6 +23,7 @@
 #include <linux/init.h>
 #include <linux/nmi.h>
 #include <linux/dmi.h>
+#include <linux/console.h>
 
 #define PANIC_TIMER_STEP 100
 #define PANIC_BLINK_SPD 18
@@ -127,6 +128,13 @@ void panic(const char *fmt, ...)
 
 	atomic_notifier_call_chain(&panic_notifier_list, 0, buf);
 
+	/*
+	 * Unlock the console anyway here, in case it's occupied by another
+	 * one which has no chance to unlock the console thus prevents the
+	 * panic log prints on the console.
+	 */
+	console_unlock();
+
 	bust_spinlocks(0);
 
 	if (!panic_blink)
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 10+ messages in thread
[parent not found: <BD54883EA7DE8B41A61B7E723561C711139F75D348@sc-vexch3.marvell.com>]

end of thread, other threads:[~2012-10-22 19:51 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-11  8:03 [PATCH] panic: fix incomplete panic log in panic() Qing Zhu
2012-10-11 21:18 ` Andrew Morton
     [not found] <BD54883EA7DE8B41A61B7E723561C711139F75D348@sc-vexch3.marvell.com>
2012-10-15 11:38 ` Qing Z
2012-10-15 22:02   ` Andrew Morton
2012-10-15 22:06     ` Andi Kleen
2012-10-16 14:25     ` Qing Z
2012-10-17 10:44     ` Qing Z
2012-10-18  0:06       ` Andrew Morton
2012-10-22 14:54         ` Qing Z
2012-10-22 19:51           ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox