ARM: 6256/1: Check arch version and modify fsr_info[] depends on it at runtime
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
33a9c41bf5
commit
993bf4ec8c
@ -475,12 +475,7 @@ static struct fsr_info {
|
||||
{ do_bad, SIGBUS, BUS_ADRALN, "alignment exception" },
|
||||
{ do_bad, SIGKILL, 0, "terminal exception" },
|
||||
{ do_bad, SIGBUS, BUS_ADRALN, "alignment exception" },
|
||||
/* Do we need runtime check ? */
|
||||
#if __LINUX_ARM_ARCH__ < 6
|
||||
{ do_bad, SIGBUS, 0, "external abort on linefetch" },
|
||||
#else
|
||||
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "I-cache maintenance fault" },
|
||||
#endif
|
||||
{ do_translation_fault, SIGSEGV, SEGV_MAPERR, "section translation fault" },
|
||||
{ do_bad, SIGBUS, 0, "external abort on linefetch" },
|
||||
{ do_page_fault, SIGSEGV, SEGV_MAPERR, "page translation fault" },
|
||||
@ -605,3 +600,14 @@ do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
|
||||
arm_notify_die("", regs, &info, ifsr, 0);
|
||||
}
|
||||
|
||||
static int __init exceptions_init(void)
|
||||
{
|
||||
if (cpu_architecture() >= CPU_ARCH_ARMv6) {
|
||||
hook_fault_code(4, do_translation_fault, SIGSEGV, SEGV_MAPERR,
|
||||
"I-cache maintenance fault");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
arch_initcall(exceptions_init);
|
||||
|
Loading…
Reference in New Issue
Block a user