Bladeren bron

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>
Robin Getz 16 jaren geleden
bovenliggende
commit
0acad8dfee
1 gewijzigde bestanden met toevoegingen van 3 en 0 verwijderingen
  1. 3 0
      arch/blackfin/kernel/traps.c

+ 3 - 0
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;
 }