| From | Mike Frysinger <> | Subject | [PATCH 40/62] Blackfin: add workaround for anomaly 05000461 | Date | Fri, 5 Jun 2009 04:04:49 -0400 |
| |
From: Robin Getz <robin.getz@analog.com>
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> --- 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 0d04a47..778a756 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) force_sig_info(sig, &info, current); } + if (ANOMALY_05000461 && trapnr == VEC_HWERR && !access_ok(VERIFY_READ, fp->pc, 8)) + fp->pc = SAFE_USER_INSTRUCTION; + trace_buffer_restore(j); return; } -- 1.6.3.1
|