From: Helge Deller Date: Sun, 7 Jan 2007 15:27:27 +0000 (+0100) Subject: [PARISC] detect recursive kernel crash earlier X-Git-Tag: v2.6.21-rc2~35^2~26 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=0bbdac0897a48f415eb788bf3263c92bd5e97ffb;p=linux-2.6-omap-h63xx.git [PARISC] detect recursive kernel crash earlier Signed-off-by: Helge Deller Signed-off-by: Kyle McMartin --- diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 7bf9e36f010..1f62853e4c0 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -255,8 +255,16 @@ KERN_CRIT " || ||\n"); printk(KERN_CRIT "%s (pid %d): %s (code %ld)\n", current->comm, current->pid, str, err); - dump_stack(); + /* Wot's wrong wif bein' racy? */ + if (current->thread.flags & PARISC_KERNEL_DEATH) { + printk(KERN_CRIT "%s() recursion detected.\n", __FUNCTION__); + local_irq_enable(); + while (1); + } + current->thread.flags |= PARISC_KERNEL_DEATH; + show_regs(regs); + dump_stack(); if (in_interrupt()) panic("Fatal exception in interrupt"); @@ -267,14 +275,6 @@ KERN_CRIT " || ||\n"); panic("Fatal exception"); } - /* Wot's wrong wif bein' racy? */ - if (current->thread.flags & PARISC_KERNEL_DEATH) { - printk(KERN_CRIT "%s() recursion detected.\n", __FUNCTION__); - local_irq_enable(); - while (1); - } - - current->thread.flags |= PARISC_KERNEL_DEATH; do_exit(SIGSEGV); }