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: Robin Getz <robin.getz@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
976119bc5d
commit
0e4edcf0b0
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue