From: Robin Getz Date: Mon, 12 Nov 2007 14:46:46 +0000 (+0800) Subject: Blackfin arch: fix bux - only reset the PC when necessary, otherwise gdb gets confused X-Git-Tag: v2.6.24-rc4~95^2~54 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4a589e1ef67fdb2d5fa783117da8dc7cba576af4;p=linux-2.6 Blackfin arch: fix bux - only reset the PC when necessary, otherwise gdb gets confused Signed-off-by: Robin Getz Signed-off-by: Bryan Wu --- diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index aaddb724a5..ce9981b533 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c @@ -158,7 +158,7 @@ static void decode_address(char *buf, unsigned long address) } /* 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 @@ asmlinkage void trap_c(struct pt_regs *fp) /* 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;