Now that KERN_CONT is required to do continuation lines properly, our
oops output is messed up.

But as the code is currently written we can't actually use pr_cont()
correctly, because some of the output may or may not be a continuation
line, depending on what was printed previously.

So move the printing of SOFTE up, so that we always have a line to
continue (at least on 64-bit). While we're at it, pull the CFAR logic
inside the #ifdef PPC64, CFAR is 64-bit only.

Signed-off-by: Michael Ellerman <m...@ellerman.id.au>
---
 arch/powerpc/kernel/process.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 3898e381556f..84d334527fcd 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -1346,17 +1346,17 @@ void show_regs(struct pt_regs * regs)
        print_msr_bits(regs->msr);
        printk("  CR: %08lx  XER: %08lx\n", regs->ccr, regs->xer);
        trap = TRAP(regs);
+#ifdef CONFIG_PPC64
+       printk("SOFTE: %ld ", regs->softe);
        if ((regs->trap != 0xc00) && cpu_has_feature(CPU_FTR_CFAR))
                printk("CFAR: "REG" ", regs->orig_gpr3);
+#endif
        if (trap == 0x200 || trap == 0x300 || trap == 0x600)
 #if defined(CONFIG_4xx) || defined(CONFIG_BOOKE)
                printk("DEAR: "REG" ESR: "REG" ", regs->dar, regs->dsisr);
 #else
                printk("DAR: "REG" DSISR: %08lx ", regs->dar, regs->dsisr);
 #endif
-#ifdef CONFIG_PPC64
-       printk("SOFTE: %ld ", regs->softe);
-#endif
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
        if (MSR_TM_ACTIVE(regs->msr))
                printk("\nPACATMSCRATCH: %016llx ", get_paca()->tm_scratch);
-- 
2.7.4

Reply via email to