diff options
Diffstat (limited to 'arch/arm/mm/fault.c')
| -rw-r--r-- | arch/arm/mm/fault.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 23b0b03af5ea..1e21e125fe3a 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c | |||
| @@ -581,6 +581,19 @@ static struct fsr_info ifsr_info[] = { | |||
| 581 | { do_bad, SIGBUS, 0, "unknown 31" }, | 581 | { do_bad, SIGBUS, 0, "unknown 31" }, |
| 582 | }; | 582 | }; |
| 583 | 583 | ||
| 584 | void __init | ||
| 585 | hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *), | ||
| 586 | int sig, int code, const char *name) | ||
| 587 | { | ||
| 588 | if (nr < 0 || nr >= ARRAY_SIZE(ifsr_info)) | ||
| 589 | BUG(); | ||
| 590 | |||
| 591 | ifsr_info[nr].fn = fn; | ||
| 592 | ifsr_info[nr].sig = sig; | ||
| 593 | ifsr_info[nr].code = code; | ||
| 594 | ifsr_info[nr].name = name; | ||
| 595 | } | ||
| 596 | |||
| 584 | asmlinkage void __exception | 597 | asmlinkage void __exception |
| 585 | do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs) | 598 | do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs) |
| 586 | { | 599 | { |
