[PATCH RFC 2/4] arm64: mm: Add RAS extension system register check to SEA handling

From: Tyler Baicar OS
Date: Tue Jul 02 2019 - 12:51:52 EST

On systems that support the ARM RAS extension, synchronous external
abort syndrome information could be captured in the core's RAS extension
system registers. So, when handling SEAs check the RAS system registers
for error syndrome information.

Signed-off-by: Tyler Baicar <baicar@xxxxxxxxxxxxxxxxxxxxxx>
arch/arm64/mm/fault.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index 2d11501..76b42ca 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -37,6 +37,7 @@
#include <asm/pgtable.h>
#include <asm/tlbflush.h>
#include <asm/traps.h>
+#include <asm/ras.h>

struct fault_info {
int (*fn)(unsigned long addr, unsigned int esr,
@@ -632,6 +633,8 @@ static int do_sea(unsigned long addr, unsigned int esr, struct pt_regs *regs)

inf = esr_to_fault_info(esr);

+ arch_arm_ras_report_error();
* Return value ignored as we rely on signal merging.
* Future patches will make this more robust.