ARM: interrupts: print pre-reloc address only if U-Boot has been relocated
authorLothar Waßmann <LW@KARO-electronics.de>
Fri, 9 Jan 2015 11:11:13 +0000 (12:11 +0100)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 9 Jan 2015 12:08:02 +0000 (13:08 +0100)
arch/arm/lib/interrupts.c

index a122e74..e0aef1b 100644 (file)
@@ -109,11 +109,18 @@ void show_regs (struct pt_regs *regs)
 
        flags = condition_codes(regs);
 
-       printf ("pc : [<%08lx>] (pre-reloc: [<%08lx>]) lr : [<%08lx>]\n"
-               "sp : %08lx  ip : %08lx  fp : %08lx\n",
-               instruction_pointer(regs),
-               instruction_pointer(regs) - gd->reloc_off,
-               regs->ARM_lr, regs->ARM_sp, regs->ARM_ip, regs->ARM_fp);
+       if (gd->flags & GD_FLG_RELOC)
+               printf ("pc : [<%08lx>] (pre-reloc: [<%08lx>]) lr : [<%08lx>]\n"
+                       "sp : %08lx  ip : %08lx  fp : %08lx\n",
+                       instruction_pointer(regs),
+                       instruction_pointer(regs) - gd->reloc_off,
+                       regs->ARM_lr, regs->ARM_sp,
+                       regs->ARM_ip, regs->ARM_fp);
+       else
+               printf ("pc : [<%08lx>] lr : [<%08lx>]\n"
+                       "sp : %08lx  ip : %08lx  fp : %08lx\n",
+                       instruction_pointer(regs), regs->ARM_lr, regs->ARM_sp,
+                       regs->ARM_ip, regs->ARM_fp);
        printf ("r10: %08lx  r9 : %08lx  r8 : %08lx\n",
                regs->ARM_r10, regs->ARM_r9, regs->ARM_r8);
        printf ("r7 : %08lx  r6 : %08lx  r5 : %08lx  r4 : %08lx\n",