aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel/traps.c
diff options
context:
space:
mode:
authorRobin Getz <robin.getz@analog.com>2007-10-09 05:24:30 -0400
committerBryan Wu <bryan.wu@analog.com>2007-10-09 05:24:30 -0400
commit2ebcade590dcf822dcdadcc4f8f68efd3ff2e217 (patch)
tree38532077386784de87ac65aba73e22c399c96ecb /arch/blackfin/kernel/traps.c
parent0ae53640b54f2c30e52044f7102ba08915b988a7 (diff)
Blackfin arch: fix endless loop bug when a double fault happens
Today when a double fault happens (exception during an exception handling event), we go into an endless loop, with nothing comming out the UART. With this patch, we actually see that we have commited a double fault event Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/kernel/traps.c')
-rw-r--r--arch/blackfin/kernel/traps.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c
index 1a8a5f171bc8..ba68eb2ec929 100644
--- a/arch/blackfin/kernel/traps.c
+++ b/arch/blackfin/kernel/traps.c
@@ -132,6 +132,14 @@ static int printk_address(unsigned long address)
132} 132}
133#endif 133#endif
134 134
135asmlinkage void double_fault_c(struct pt_regs *fp)
136{
137 printk(KERN_EMERG "\n" KERN_EMERG "Double Fault\n");
138 dump_bfin_regs(fp, (void *)fp->retx);
139 panic("Double Fault - unrecoverable event\n");
140
141}
142
135asmlinkage void trap_c(struct pt_regs *fp) 143asmlinkage void trap_c(struct pt_regs *fp)
136{ 144{
137#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON 145#ifdef CONFIG_DEBUG_BFIN_HWTRACE_ON