Commit 0e4edcf0 authored by Robin Getz's avatar Robin Getz Committed by Mike Frysinger

Blackfin: work around anomaly 05000281

Add missing anomaly workaround for anomaly 05000281 - we can't return to
instructions which cause hardware errors otherwise we trigger the error
again which means we go into an infinite loop of handling, returning, and
retriggering.  This work around confuses gdb when the error occurs as the
PC will seemed to have moved, so a better long term fix will need to be
figured out, but for now this is better than an infinite crash loop.
Signed-off-by: default avatarRobin Getz <robin.getz@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent 976119bc
...@@ -619,7 +619,8 @@ asmlinkage void trap_c(struct pt_regs *fp) ...@@ -619,7 +619,8 @@ asmlinkage void trap_c(struct pt_regs *fp)
force_sig_info(sig, &info, current); force_sig_info(sig, &info, current);
} }
if (ANOMALY_05000461 && trapnr == VEC_HWERR && !access_ok(VERIFY_READ, fp->pc, 8)) if ((ANOMALY_05000461 && trapnr == VEC_HWERR && !access_ok(VERIFY_READ, fp->pc, 8)) ||
(ANOMALY_05000281 && trapnr == VEC_HWERR))
fp->pc = SAFE_USER_INSTRUCTION; fp->pc = SAFE_USER_INSTRUCTION;
traps_done: traps_done:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment