diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-10-06 00:15:44 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-10-06 00:15:44 +0000 |
commit | e3fa0ff8a6a2aec75a10357815afadb159fa586e (patch) | |
tree | 2aa2114f80a1f0866e12a570cb7915254e7b31dc | |
parent | 63177631fe3ca455b76fe0bd69c4f7e6dd73bc67 (diff) | |
parent | 8ef7cebcbb6b7a1fa4a8725421cd04f1c73398b1 (diff) |
Merge release-20200928.0-47-g8ef7cebcb (automated)
-rw-r--r-- | pkg/sentry/platform/ring0/entry_impl_arm64.s | 8 |
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) |