Blackfin arch: fix bux - only reset the PC when necessary, otherwise gdb gets confused

Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>

diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index aaddb72..ce9981b 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -158,7 +158,7 @@
 	}
 
 	/* we were unable to find this address anywhere */
-	sprintf(buf, "[<0x%p>]", (void *)address);
+	sprintf(buf, "<0x%p> /* unknown address */", (void *)address);
 
 done:
 	write_unlock_irqrestore(&tasklist_lock, flags);
@@ -467,7 +467,8 @@
 		/* Ensure that bad return addresses don't end up in an infinite
 		 * loop, due to speculative loads/reads
 		 */
-		fp->pc = SAFE_USER_INSTRUCTION;
+		if (trapnr == VEC_CPLB_I_M)
+			fp->pc = SAFE_USER_INSTRUCTION;
 	}
 	info.si_signo = sig;
 	info.si_errno = 0;