summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/arm/cpu/armv8/exceptions.S5
-rw-r--r--arch/arm/include/asm/proc-armv/ptrace.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/arch/arm/cpu/armv8/exceptions.S b/arch/arm/cpu/armv8/exceptions.S
index 001913f429a..504d566721c 100644
--- a/arch/arm/cpu/armv8/exceptions.S
+++ b/arch/arm/cpu/armv8/exceptions.S
@@ -77,15 +77,18 @@ _save_el_regs:
switch_el x11, 3f, 2f, 1f
3: mrs x1, esr_el3
mrs x2, elr_el3
+ mrs x3, spsr_el3
b 0f
2: mrs x1, esr_el2
mrs x2, elr_el2
+ mrs x3, spsr_el2
b 0f
1: mrs x1, esr_el1
mrs x2, elr_el1
+ mrs x3, spsr_el1
0:
stp x1, x0, [sp, #-16]!
- stp xzr, x2, [sp, #-16]!
+ stp x3, x2, [sp, #-16]!
mov x0, sp
ret
diff --git a/arch/arm/include/asm/proc-armv/ptrace.h b/arch/arm/include/asm/proc-armv/ptrace.h
index bebcaf6e332..3b8fe7aac04 100644
--- a/arch/arm/include/asm/proc-armv/ptrace.h
+++ b/arch/arm/include/asm/proc-armv/ptrace.h
@@ -21,7 +21,7 @@
* on the stack during an exception.
*/
struct pt_regs {
- unsigned long unused;
+ unsigned long spsr;
unsigned long elr;
unsigned long esr;
unsigned long regs[31];