summaryrefslogtreecommitdiff
path: root/sys/dev/nvmm
diff options
context:
space:
mode:
authormaxv <maxv@NetBSD.org>2019-06-16 18:30:31 +0000
committermaxv <maxv@NetBSD.org>2019-06-16 18:30:31 +0000
commitb706961db197e603fefb81ebdfd5a7c9a76fdbf3 (patch)
tree09e14b16de11984ad7e0760bb1a6c9c6aeea0249 /sys/dev/nvmm
parent3223e492c6d12203cd22078b80bc219a3f269c48 (diff)
Make sure VMX-outside-SMX is allowed. It may not be if the BIOS decided to
disable VMX. Seen on an HP laptop, where NVMM would panic because of that.
Diffstat (limited to 'sys/dev/nvmm')
-rw-r--r--sys/dev/nvmm/x86/nvmm_x86_vmx.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/nvmm/x86/nvmm_x86_vmx.c b/sys/dev/nvmm/x86/nvmm_x86_vmx.c
index 34fe50ce436..42c7043bae9 100644
--- a/sys/dev/nvmm/x86/nvmm_x86_vmx.c
+++ b/sys/dev/nvmm/x86/nvmm_x86_vmx.c
@@ -1,4 +1,4 @@
-/* $NetBSD: nvmm_x86_vmx.c,v 1.35 2019/05/18 08:55:59 maxv Exp $ */
+/* $NetBSD: nvmm_x86_vmx.c,v 1.36 2019/06/16 18:30:31 maxv Exp $ */
/*
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_vmx.c,v 1.35 2019/05/18 08:55:59 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nvmm_x86_vmx.c,v 1.36 2019/06/16 18:30:31 maxv Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -2894,6 +2894,9 @@ vmx_ident(void)
if ((msr & IA32_FEATURE_CONTROL_LOCK) == 0) {
return false;
}
+ if ((msr & IA32_FEATURE_CONTROL_OUT_SMX) == 0) {
+ return false;
+ }
msr = rdmsr(MSR_IA32_VMX_BASIC);
if ((msr & IA32_VMX_BASIC_IO_REPORT) == 0) {