Page MenuHomeFreeBSD

D46079.id142243.diff
No OneTemporary

D46079.id142243.diff

diff --git a/sys/arm64/vmm/vmm_hyp.c b/sys/arm64/vmm/vmm_hyp.c
--- a/sys/arm64/vmm/vmm_hyp.c
+++ b/sys/arm64/vmm/vmm_hyp.c
@@ -220,6 +220,7 @@
hypctx->tf.tf_spsr = READ_SPECIALREG(spsr_el2);
if (guest) {
hypctx->tf.tf_esr = READ_SPECIALREG(esr_el2);
+ hypctx->par_el1 = READ_SPECIALREG(par_el1);
}
/* Store the guest special registers */
@@ -232,7 +233,6 @@
hypctx->csselr_el1 = READ_SPECIALREG(csselr_el1);
hypctx->mdccint_el1 = READ_SPECIALREG(mdccint_el1);
hypctx->mdscr_el1 = READ_SPECIALREG(mdscr_el1);
- hypctx->par_el1 = READ_SPECIALREG(par_el1);
if (guest_or_nonvhe(guest)) {
hypctx->elr_el1 = READ_SPECIALREG(EL1_REG(ELR));
@@ -279,7 +279,6 @@
WRITE_SPECIALREG(csselr_el1, hypctx->csselr_el1);
WRITE_SPECIALREG(mdccint_el1, hypctx->mdccint_el1);
WRITE_SPECIALREG(mdscr_el1, hypctx->mdscr_el1);
- WRITE_SPECIALREG(par_el1, hypctx->par_el1);
if (guest_or_nonvhe(guest)) {
WRITE_SPECIALREG(EL1_REG(ELR), hypctx->elr_el1);
@@ -302,6 +301,10 @@
WRITE_SPECIALREG(EL1_REG(TTBR1), hypctx->ttbr1_el1);
}
+ if (guest) {
+ WRITE_SPECIALREG(par_el1, hypctx->par_el1);
+ }
+
WRITE_SPECIALREG(cptr_el2, hypctx->cptr_el2);
WRITE_SPECIALREG(vpidr_el2, hypctx->vpidr_el2);
WRITE_SPECIALREG(vmpidr_el2, hypctx->vmpidr_el2);

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 27, 11:42 PM (9 h, 25 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16223236
Default Alt Text
D46079.id142243.diff (1 KB)

Event Timeline