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>
This commit is contained in:
Anshuman Khandual 2018-09-22 21:09:54 +05:30 committed by Catalin Marinas
parent dbfe3828a6
commit 359048f91d

View File

@ -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,
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;
/* /*