summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Deacon <willdeacon@google.com>2020-06-09 12:53:16 +0100
committerWill Deacon <willdeacon@google.com>2020-06-09 12:53:28 +0100
commit8cc585eb32b429271db6b338b08871350695b56c (patch)
tree87aacd3a8a5a47fb1220cde17b307b52cb1ada22
parent861c24bf6c928ab01655e0f028169ccb080eeea5 (diff)
Revert "FROMLIST: arm64: preserve x18 when CPU is suspended"
Shadow call stack is now merged upstream for 5.9, so revert the patches cherry-picked into android-mainline in preparation for pulling the upstream version instead. This reverts commit ee3f10f584ac69d0e34a7aedbea9448b015f8347. Signed-off-by: Will Deacon <willdeacon@google.com> Change-Id: Ie68af0533b0d25d8aa925ef365c897941d0dd21b
-rw-r--r--arch/arm64/include/asm/suspend.h2
-rw-r--r--arch/arm64/mm/proc.S14
2 files changed, 1 insertions, 15 deletions
diff --git a/arch/arm64/include/asm/suspend.h b/arch/arm64/include/asm/suspend.h
index 0cde2f473971..8939c87c4dce 100644
--- a/arch/arm64/include/asm/suspend.h
+++ b/arch/arm64/include/asm/suspend.h
@@ -2,7 +2,7 @@
#ifndef __ASM_SUSPEND_H
#define __ASM_SUSPEND_H
-#define NR_CTX_REGS 13
+#define NR_CTX_REGS 12
#define NR_CALLEE_SAVED_REGS 12
/*
diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index ed15be0f8103..197a9ba2d5ea 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -58,8 +58,6 @@
* cpu_do_suspend - save CPU registers context
*
* x0: virtual address of context pointer
- *
- * This must be kept in sync with struct cpu_suspend_ctx in <asm/suspend.h>.
*/
SYM_FUNC_START(cpu_do_suspend)
mrs x2, tpidr_el0
@@ -84,11 +82,6 @@ alternative_endif
stp x8, x9, [x0, #48]
stp x10, x11, [x0, #64]
stp x12, x13, [x0, #80]
- /*
- * Save x18 as it may be used as a platform register, e.g. by shadow
- * call stack.
- */
- str x18, [x0, #96]
ret
SYM_FUNC_END(cpu_do_suspend)
@@ -105,13 +98,6 @@ SYM_FUNC_START(cpu_do_resume)
ldp x9, x10, [x0, #48]
ldp x11, x12, [x0, #64]
ldp x13, x14, [x0, #80]
- /*
- * Restore x18, as it may be used as a platform register, and clear
- * the buffer to minimize the risk of exposure when used for shadow
- * call stack.
- */
- ldr x18, [x0, #96]
- str xzr, [x0, #96]
msr tpidr_el0, x2
msr tpidrro_el0, x3
msr contextidr_el1, x4