summaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/fault.c
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2021-06-08 14:37:42 +0200
committerWill Deacon <will@kernel.org>2021-06-08 18:35:31 +0200
commite0e3903f83d5e41ab7e7737ebe41ef36f578dc0a (patch)
tree028cda820188f42346c5c1f1c31ff73e35ae85da /arch/arm64/mm/fault.c
parentarm64: mm: Add is_el1_data_abort() helper (diff)
downloadlinux-e0e3903f83d5e41ab7e7737ebe41ef36f578dc0a.tar.xz
linux-e0e3903f83d5e41ab7e7737ebe41ef36f578dc0a.zip
arm64: mm: decode xFSC in mem_abort_decode()
It would be helpful if mem_abort_decode() could decode the DFSC/IFSC, as this can make it easier to identify common bugs (e.g. accesses which trigger alignment faults) without having to manually decode the xFSC value. Decode the xFSC in mem_abort_decode(). Signed-off-by: Mark Rutland <mark.rutland@arm.com> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Robin Murphy <robin.murphy@arm.com> Cc: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/20210608123742.11921-1-mark.rutland@arm.com Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'arch/arm64/mm/fault.c')
-rw-r--r--arch/arm64/mm/fault.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 5c855b2ab93b..6786cf152666 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -99,6 +99,8 @@ static void mem_abort_decode(unsigned int esr)
pr_alert(" EA = %lu, S1PTW = %lu\n",
(esr & ESR_ELx_EA) >> ESR_ELx_EA_SHIFT,
(esr & ESR_ELx_S1PTW) >> ESR_ELx_S1PTW_SHIFT);
+ pr_alert(" FSC = 0x%02x: %s\n", (esr & ESR_ELx_FSC),
+ esr_to_fault_info(esr)->name);
if (esr_is_data_abort(esr))
data_abort_decode(esr);