summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMin Le <lemin.lm@antgroup.com>2020-10-26 11:18:10 +0800
committerMin Le <lemin.lm@antgroup.com>2020-10-28 14:10:35 +0800
commitc534c91b86b5190a367174db97c4a14fe0d0ffae (patch)
treeaa03a98b90cb98322c93749eb44d2ca766ce8138
parent293877cf647ac3e900f0ae15061317a512bba7a0 (diff)
arm64: need to restore the sentry's TLS when in EL1
Signed-off-by: Min Le <lemin.lm@antgroup.com>
-rw-r--r--pkg/sentry/platform/ring0/entry_arm64.s4
1 files changed, 4 insertions, 0 deletions
diff --git a/pkg/sentry/platform/ring0/entry_arm64.s b/pkg/sentry/platform/ring0/entry_arm64.s
index 1079a024b..f9278b653 100644
--- a/pkg/sentry/platform/ring0/entry_arm64.s
+++ b/pkg/sentry/platform/ring0/entry_arm64.s
@@ -516,6 +516,10 @@ TEXT ·kernelExitToEl1(SB),NOSPLIT,$0
MOVD CPU_REGISTERS+PTRACE_PC(RSV_REG), R1
MSR R1, ELR_EL1
+ // restore sentry's tls.
+ MOVD CPU_REGISTERS+PTRACE_TLS(RSV_REG), R1
+ MSR R1, TPIDR_EL0
+
MOVD CPU_REGISTERS+PTRACE_SP(RSV_REG), R1
MOVD R1, RSP