diff options
author | Robin Getz <robin.getz@analog.com> | 2009-05-11 14:55:16 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-06-12 06:11:46 -0400 |
commit | 0acad8dfee6bde7e246a95a52f864a8eee777ed8 (patch) | |
tree | b50fff31b98b11353f58bdae9367fe6a276eecab /arch/blackfin/kernel/traps.c | |
parent | a0cab65642813b7990e1b4b2ab6ad92e171571f4 (diff) |
Blackfin: add workaround for anomaly 05000461
Returning too fast with a bad RETI can trigger false errors.
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel/traps.c')
-rw-r--r-- | arch/blackfin/kernel/traps.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 0d04a4732b1f..778a75655a0c 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -594,6 +594,9 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
594 | force_sig_info(sig, &info, current); | 594 | force_sig_info(sig, &info, current); |
595 | } | 595 | } |
596 | 596 | ||
597 | if (ANOMALY_05000461 && trapnr == VEC_HWERR && !access_ok(VERIFY_READ, fp->pc, 8)) | ||
598 | fp->pc = SAFE_USER_INSTRUCTION; | ||
599 | |||
597 | trace_buffer_restore(j); | 600 | trace_buffer_restore(j); |
598 | return; | 601 | return; |
599 | } | 602 | } |