[PATCH 4.9 53/54] ARCv2: save r30 on kernel entry as gcc uses it for code-gen

From: Greg Kroah-Hartman
Date: Mon May 01 2017 - 17:49:48 EST


4.9-stable review patch. If anyone has any objections, please let me know.

------------------

From: Vineet Gupta <vgupta@xxxxxxxxxxxx>

commit ecd43afdbe72017aefe48080631eb625e177ef4d upstream.

This is not exposed to userspace debugers yet, which can be done
independently as a seperate patch !

Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
arch/arc/include/asm/entry-arcv2.h | 2 ++
arch/arc/include/asm/ptrace.h | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)

--- a/arch/arc/include/asm/entry-arcv2.h
+++ b/arch/arc/include/asm/entry-arcv2.h
@@ -16,6 +16,7 @@
;
; Now manually save: r12, sp, fp, gp, r25

+ PUSH r30
PUSH r12

; Saving pt_regs->sp correctly requires some extra work due to the way
@@ -72,6 +73,7 @@
POPAX AUX_USER_SP
1:
POP r12
+ POP r30

.endm

--- a/arch/arc/include/asm/ptrace.h
+++ b/arch/arc/include/asm/ptrace.h
@@ -84,7 +84,7 @@ struct pt_regs {
unsigned long fp;
unsigned long sp; /* user/kernel sp depending on where we came from */

- unsigned long r12;
+ unsigned long r12, r30;

/*------- Below list auto saved by h/w -----------*/
unsigned long r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11;