Title: [6602] trunk/arch/blackfin/kernel/traps.c: make sure all exit paths of trap_c() restore the trace buffer status
- Revision
- 6602
- Author
- vapier
- Date
- 2009-06-07 14:11:50 -0500 (Sun, 07 Jun 2009)
Log Message
make sure all exit paths of trap_c() restore the trace buffer status
Modified Paths
Diff
Modified: trunk/arch/blackfin/kernel/traps.c (6601 => 6602)
--- trunk/arch/blackfin/kernel/traps.c 2009-06-07 10:56:33 UTC (rev 6601)
+++ trunk/arch/blackfin/kernel/traps.c 2009-06-07 19:11:50 UTC (rev 6602)
@@ -305,7 +305,7 @@
CHK_DEBUGGER_TRAP_MAYBE();
/* Check if this is a breakpoint in kernel space */
if (fp->ipend & 0xffc0)
- return;
+ goto traps_done;
else
break;
/* 0x03 - User Defined, userspace stack overflow */
@@ -321,7 +321,7 @@
info.si_code = TRAP_ILLTRAP;
sig = SIGTRAP;
CHK_DEBUGGER_TRAP();
- return;
+ goto traps_done;
#endif
/* 0x04 - User Defined */
/* 0x05 - User Defined */
@@ -351,7 +351,7 @@
CHK_DEBUGGER_TRAP_MAYBE();
/* Check if this is a single step in kernel space */
if (fp->ipend & 0xffc0)
- return;
+ goto traps_done;
else
break;
/* 0x11 - Trace Buffer Full, handled here */
@@ -438,7 +438,7 @@
CHK_DEBUGGER_TRAP_MAYBE();
/* Check if this is a watchpoint in kernel space */
if (fp->ipend & 0xffc0)
- return;
+ goto traps_done;
else
break;
#ifdef CONFIG_BF535
@@ -603,8 +603,8 @@
if (ANOMALY_05000461 && trapnr == VEC_HWERR && !access_ok(VERIFY_READ, fp->pc, 8))
fp->pc = SAFE_USER_INSTRUCTION;
+ traps_done:
trace_buffer_restore(j);
- return;
}
/* Typical exception handling routines */
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits