On non-book-E, if a faulting PC is in the first few pages, and it's not an ITLB miss, it's likely executing in real mode, probably at an exception vector.
Rather than print a useless XXXXXXXX, it is assumed that this is the case, and the address is treated as physical. This helps when debugging corruption at the beginning of memory. Signed-off-by: Scott Wood <[EMAIL PROTECTED]> --- arch/powerpc/kernel/process.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 57c589c..7cb94d7 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c @@ -354,6 +354,14 @@ static void show_instructions(struct pt_regs *regs) if (!(i % 8)) printk("\n"); +#ifndef CONFIG_BOOKE + /* If the address is in the first couple pages, it's + * likely executing in real mode. + */ + if (regs->nip < 0x4000) + pc += (unsigned long)phys_to_virt(KERNELBASE); +#endif + /* We use __get_user here *only* to avoid an OOPS on a * bad address because the pc *should* only be a * kernel address. -- 1.5.3.1 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev