summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/platform/ring0
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2020-10-06 00:15:44 +0000
committergVisor bot <gvisor-bot@google.com>2020-10-06 00:15:44 +0000
commite3fa0ff8a6a2aec75a10357815afadb159fa586e (patch)
tree2aa2114f80a1f0866e12a570cb7915254e7b31dc /pkg/sentry/platform/ring0
parent63177631fe3ca455b76fe0bd69c4f7e6dd73bc67 (diff)
parent8ef7cebcbb6b7a1fa4a8725421cd04f1c73398b1 (diff)
Merge release-20200928.0-47-g8ef7cebcb (automated)
Diffstat (limited to 'pkg/sentry/platform/ring0')
-rw-r--r--pkg/sentry/platform/ring0/entry_impl_arm64.s8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkg/sentry/platform/ring0/entry_impl_arm64.s b/pkg/sentry/platform/ring0/entry_impl_arm64.s
index d654ebcb0..c19825a1a 100644
--- a/pkg/sentry/platform/ring0/entry_impl_arm64.s
+++ b/pkg/sentry/platform/ring0/entry_impl_arm64.s
@@ -532,6 +532,14 @@ TEXT ·kernelExitToEl0(SB),NOSPLIT,$0
MOVD PTRACE_PSTATE(RSV_REG_APP), R1
WORD $0xd5184001 //MSR R1, SPSR_EL1
+ // need use kernel space address to excute below code, since
+ // after SWITCH_TO_APP_PAGETABLE the ASID is changed to app's
+ // ASID.
+ WORD $0x10000061 // ADR R1, do_exit_to_el0
+ ORR $0xffff000000000000, R1, R1
+ JMP (R1)
+
+do_exit_to_el0:
// RSV_REG & RSV_REG_APP will be loaded at the end.
REGISTERS_LOAD(RSV_REG_APP, 0)