diff options
author | Anshuman Khandual <anshuman.khandual@arm.com> | 2018-09-22 21:09:54 +0530 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2018-10-01 13:48:23 +0100 |
commit | 359048f91db4be5e8be9c2b95c788c79a6756797 (patch) | |
tree | afd450bceb9ce981710b53b3172656aeb332823e /arch/arm64/mm | |
parent | dbfe3828a6f36be904427ed7f196744cb02d3072 (diff) | |
download | linux-359048f91db4be5e8be9c2b95c788c79a6756797.tar.gz linux-359048f91db4be5e8be9c2b95c788c79a6756797.tar.bz2 linux-359048f91db4be5e8be9c2b95c788c79a6756797.zip |
arm64/mm: Define esr_to_debug_fault_info()
fault_info[] and debug_fault_info[] are static arrays defining memory abort
exception handling functions looking into ESR fault status code encodings.
As esr_to_fault_info() is already available providing fault_info[] array
lookup, it really makes sense to have a corresponding debug_fault_info[]
array lookup function as well. This just adds an equivalent helper function
esr_to_debug_fault_info().
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/mm')
-rw-r--r-- | arch/arm64/mm/fault.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 0e0ea5fe6ab3..1aa487a37a0a 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -56,12 +56,18 @@ struct fault_info { }; static const struct fault_info fault_info[]; +static struct fault_info debug_fault_info[]; static inline const struct fault_info *esr_to_fault_info(unsigned int esr) { return fault_info + (esr & ESR_ELx_FSC); } +static inline const struct fault_info *esr_to_debug_fault_info(unsigned int esr) +{ + return debug_fault_info + DBG_ESR_EVT(esr); +} + #ifdef CONFIG_KPROBES static inline int notify_page_fault(struct pt_regs *regs, unsigned int esr) { @@ -830,7 +836,7 @@ asmlinkage int __exception do_debug_exception(unsigned long addr, unsigned int esr, struct pt_regs *regs) { - const struct fault_info *inf = debug_fault_info + DBG_ESR_EVT(esr); + const struct fault_info *inf = esr_to_debug_fault_info(esr); int rv; /* |