Page MenuHomeFreeBSD

D46081.id142245.diff
No OneTemporary

D46081.id142245.diff

diff --git a/sys/arm64/vmm/vmm_hyp_exception.S b/sys/arm64/vmm/vmm_hyp_exception.S
--- a/sys/arm64/vmm/vmm_hyp_exception.S
+++ b/sys/arm64/vmm/vmm_hyp_exception.S
@@ -175,6 +175,10 @@
/* Restore host VTTBR */
mov x9, #VTTBR_HOST
msr vttbr_el2, x9
+
+#ifdef VMM_VHE
+ msr vbar_el1, x1
+#endif
.endm
@@ -288,6 +292,14 @@
* x0 - hypctx address
*/
ENTRY(VMM_HYP_FUNC(do_call_guest))
+#ifdef VMM_VHE
+ mrs x1, vbar_el1
+ adrp x2, hyp_vectors
+ add x2, x2, :lo12:hyp_vectors
+ msr vbar_el1, x2
+ isb
+#endif
+
/* Save hypctx address */
msr tpidr_el2, x0

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 30, 8:58 AM (17 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17854532
Default Alt Text
D46081.id142245.diff (571 B)

Event Timeline