Commit 359048f9 authored by Anshuman Khandual's avatar Anshuman Khandual Committed by Catalin Marinas

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: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarAnshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent dbfe3828
...@@ -56,12 +56,18 @@ struct fault_info { ...@@ -56,12 +56,18 @@ struct fault_info {
}; };
static const struct fault_info 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) static inline const struct fault_info *esr_to_fault_info(unsigned int esr)
{ {
return fault_info + (esr & ESR_ELx_FSC); 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 #ifdef CONFIG_KPROBES
static inline int notify_page_fault(struct pt_regs *regs, unsigned int esr) 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, ...@@ -830,7 +836,7 @@ asmlinkage int __exception do_debug_exception(unsigned long addr,
unsigned int esr, unsigned int esr,
struct pt_regs *regs) 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; int rv;
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment