[<prev] [next>] [day] [month] [year] [list]
Message-ID: <5C4C569E8A4B9B42A84A977CF070A35B2C57DC0D11@USINDEVS01.corp.hds.com>
Date: Fri, 2 Dec 2011 17:12:43 -0500
From: Seiji Aguchi <seiji.aguchi@....com>
To: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"Luck, Tony" <tony.luck@...el.com>,
Don Zickus <dzickus@...hat.com>,
Matthew Garrett <mjg@...hat.com>,
Vivek Goyal <vgoyal@...hat.com>,
"Chen, Gong" <gong.chen@...el.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"len.brown@...el.com" <len.brown@...el.com>,
"'ying.huang@...el.com'" <'ying.huang@...el.com'>,
"'ak@...ux.intel.com'" <'ak@...ux.intel.com'>,
"'hughd@...omium.org'" <'hughd@...omium.org'>,
"'mingo@...e.hu'" <'mingo@...e.hu'>,
"jmorris@...ei.org" <jmorris@...ei.org>,
"a.p.zijlstra@...llo.nl" <a.p.zijlstra@...llo.nl>,
"namhyung@...il.com" <namhyung@...il.com>
CC: "dle-develop@...ts.sourceforge.net"
<dle-develop@...ts.sourceforge.net>,
Satoru Moriya <satoru.moriya@....com>
Subject: [RFC][PATCH v3 3/3]skip subsequent kmsg_dump() function calls in
panic path
This patch skips subsequent kmsg_dump() function calls in panic path
With this patch, we can avoid deadlock due to the subsequent calls.
Actually, kmsg_dump(KMSG_DUMP_EMERG) is called after kmsg_dump(KMSG_DUMP_PANIC)
when panic_timeout variable is set.
Signed-off-by: Seiji Aguchi <seiji.aguchi@....com>
---
kernel/printk.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/kernel/printk.c b/kernel/printk.c
index bc5ac61..25d6dc1 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -1731,6 +1731,16 @@ void kmsg_dump(enum kmsg_dump_reason reason)
const char *s1, *s2;
unsigned long l1, l2;
unsigned long flags;
+ static bool panicked;
+
+ /*
+ * kmsg_dump() is skipped because we already got panic log.
+ */
+ if (panicked)
+ return;
+
+ if (reason == KMSG_DUMP_PANIC)
+ panicked = true;
WARN_ON(in_nmi() && reason != KMSG_DUMP_PANIC);
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists