Title: [3900] trunk/arch/blackfin/kernel/traps.c: [#2424]
We need to send signals with the proper PC, or gdb gets
- Revision
- 3900
- Author
- rgetz
- Date
- 2007-11-19 19:33:32 -0600 (Mon, 19 Nov 2007)
Log Message
[#2424] We need to send signals with the proper PC, or gdb gets
confused, and lots of tests fail. This should fix that.
Diffstat
traps.c | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
Modified Paths
Diff
Modified: trunk/arch/blackfin/kernel/traps.c (3899 => 3900)
--- trunk/arch/blackfin/kernel/traps.c 2007-11-20 01:27:40 UTC (rev 3899)
+++ trunk/arch/blackfin/kernel/traps.c 2007-11-20 01:33:32 UTC (rev 3900)
@@ -462,18 +462,20 @@
#endif
panic("Kernel exception");
}
+ }
- /* Ensure that bad return addresses don't end up in an infinite
- * loop, due to speculative loads/reads
- */
- if (trapnr == VEC_CPLB_I_M)
- fp->pc = SAFE_USER_INSTRUCTION;
- }
info.si_signo = sig;
info.si_errno = 0;
info.si_addr = (void *)fp->pc;
force_sig_info(sig, &info, current);
+ /* Ensure that bad return addresses don't end up in an infinite
+ * loop, due to speculative loads/reads. This needs to be done after
+ * the signal has been sent.
+ */
+ if (trapnr == VEC_CPLB_I_M && sig != SIGTRAP)
+ fp->pc = SAFE_USER_INSTRUCTION;
+
trace_buffer_restore(j);
return;
}
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits