From: Scott Wood Date: Thu, 27 Sep 2007 18:38:55 +0000 (+1000) Subject: [POWERPC] Make instruction dumping work in real mode X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0de2d820067e03ca93f6bf5320d362d5262fb7a3;p=openwrt%2Fstaging%2Fblogic.git [POWERPC] Make instruction dumping work in real mode On non-book-E, exceptions execute in real mode. If a fault happens that leads to a register dump, the kernel currently prints XXXXXXXX because it doesn't realize that PC is a physical address. This patch checks whether instruction address translation is turned on, and if not converts PC into a virtual address. Signed-off-by: Scott Wood Acked-by: Kumar Gala Acked-by: Olof Johansson Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 57c589c34147..588c0cb8115e 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"); +#if !defined(CONFIG_BOOKE) + /* If executing with the IMMU off, adjust pc rather + * than print XXXXXXXX. + */ + if (!(regs->msr & MSR_IR)) + pc = (unsigned long)phys_to_virt(pc); +#endif + /* We use __get_user here *only* to avoid an OOPS on a * bad address because the pc *should* only be a * kernel address.