Messages in this thread Patch in this message | | | From | Seiji Aguchi <> | Date | Thu, 5 Jan 2012 12:39:59 -0500 | Subject | [RFC][PATCH v4 -next 3/4]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_EMREG) is called after kmsg_dump(KMSG_DUMP_PANIC) when panic_timeout variable is set.
Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
--- kernel/printk.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/kernel/printk.c b/kernel/printk.c index 5294426..186d792 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; /* * Currently, "in_nmi() && reason != KMSG_DUMP_PANIC" case never happens -- 1.7.1
| |