[PATCH] Fix powerpc bad_page_fault output (Re: 2.6.16-rc5-mm1)

Olof Johansson
2006-03-01T16:46:08Z

On Tue, Feb 28, 2006 at 03:56:24PM -0800, Martin Bligh wrote:
> Andrew Morton wrote:
> >ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.16-rc5/2.6.16-rc5-mm1/
>
> New panic on IBM power4 lpar of P690. 2.6.16-rc5-git3 is OK.
>
> (config:
> http://ftp.kernel.org/pub/linux/kernel/people/mbligh/config/abat/power4)
>
> http://test.kernel.org/24165/debug/console.log

For what it's worth, this is a NULL pointer dereference in the RCU
code.

Seems that the human-readible parts are printed at a differnet printk level
(well, _at_ a level), so they fell off. Not good.

Andrew and/or Paulus, see patch below.

Thanks,

Olof

---

It seems that the die() output is printk'd without any prink level,
so some distros will log the register dumps and the human readible
format differently.

(I.e. see http://test.kernel.org/24165/debug/console.log, which lacks
the KERN_ALERT parts)

Changing the die() output to include a level will likely confuse users
that currently rely on getting the output where they're getting it,
so instead remove it from the bad_page_fault() output.

Signed-off-by: Olof Johansson <olof@lixom.net>

diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index ec4adcb..fee050a 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -389,7 +389,7 @@ void bad_page_fault(struct pt_regs *regs

/* kernel has accessed a bad area */

- printk(KERN_ALERT "Unable to handle kernel paging request for ");
+ printk("Unable to handle kernel paging request for ");
switch (regs->trap) {
case 0x300:
case 0x380:
@@ -402,8 +402,7 @@ void bad_page_fault(struct pt_regs *regs
default:
printk("unknown fault\n");
}
- printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
- regs->nip);
+ printk("Faulting instruction address: 0x%08lx\n", regs->nip);

die("Kernel access of bad area", regs, sig);
}