summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormlarkin <mlarkin@openbsd.org>2016-10-05 08:04:14 +0000
committermlarkin <mlarkin@openbsd.org>2016-10-05 08:04:14 +0000
commit68b3eab74129b6b5d6bdacd81fed5a26ec61132f (patch)
tree1be1e1515a3fe0bdbd02f82d3927074d992436a9
parentSome device trees use 64-bit intermediate virtual addresses. This (diff)
downloadwireguard-openbsd-68b3eab74129b6b5d6bdacd81fed5a26ec61132f.tar.xz
wireguard-openbsd-68b3eab74129b6b5d6bdacd81fed5a26ec61132f.zip
Add a missing flush; this appears to fix the broadwell/skylake "failed to
launch with valid vmcs" issue some people have been seeing when launching vmm(4) VMs. tested by reyk@
-rw-r--r--sys/arch/amd64/amd64/vmm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/arch/amd64/amd64/vmm.c b/sys/arch/amd64/amd64/vmm.c
index 551b688d59a..7b3c5ead518 100644
--- a/sys/arch/amd64/amd64/vmm.c
+++ b/sys/arch/amd64/amd64/vmm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmm.c,v 1.88 2016/10/03 04:53:54 mlarkin Exp $ */
+/* $OpenBSD: vmm.c,v 1.89 2016/10/05 08:04:14 mlarkin Exp $ */
/*
* Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
*
@@ -2155,7 +2155,10 @@ exit:
if (vcpu->vc_vmx_msr_entry_load_va)
km_free((void *)vcpu->vc_vmx_msr_entry_load_va,
PAGE_SIZE, &kv_page, &kp_zero);
- }
+ } else {
+ if (vmclear(&vcpu->vc_control_pa))
+ ret = EINVAL;
+ }
return (ret);
}