diff options
| author | maxv <maxv@NetBSD.org> | 2019-06-16 18:30:31 +0000 |
|---|---|---|
| committer | maxv <maxv@NetBSD.org> | 2019-06-16 18:30:31 +0000 |
| commit | b706961db197e603fefb81ebdfd5a7c9a76fdbf3 (patch) | |
| tree | 09e14b16de11984ad7e0760bb1a6c9c6aeea0249 /sys/dev/nvmm | |
| parent | 3223e492c6d12203cd22078b80bc219a3f269c48 (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.c | 7 |
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) { |
