From b475e35ba02ad4545da5ffd3a11226cd654ba385 Mon Sep 17 00:00:00 2001 From: Mihai Carabas Date: Sun, 26 Jan 2014 01:42:38 +0200 Subject: [PATCH] sys: platform: pc64: vmm: vmx.c: bug-fix in PROCBASED2 detection Bug-fix in accessing PROCBASED2 MSR: * First check PROCBASED MSR to see if it is available Reported-by: Johannes Hofmann --- sys/platform/pc64/vmm/vmx.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/sys/platform/pc64/vmm/vmx.c b/sys/platform/pc64/vmm/vmx.c index 21b0fb3bfa..d42739a24b 100644 --- a/sys/platform/pc64/vmm/vmx.c +++ b/sys/platform/pc64/vmm/vmx.c @@ -331,8 +331,18 @@ vmx_init(void) } vmx_set_default_settings(&vmx_pinbased); + vmx_set_default_settings(&vmx_procbased); + /* Enable second level for procbased */ + err = vmx_set_ctl_setting(&vmx_procbased, + PROCBASED_ACTIVATE_SECONDARY_CONTROLS, + ONE); + if (err) { + kprintf("VMM: PROCBASED_ACTIVATE_SECONDARY_CONTROLS not supported by this CPU\n"); + return (ENODEV); + } vmx_set_default_settings(&vmx_procbased2); + vmx_set_default_settings(&vmx_exit); vmx_set_default_settings(&vmx_entry); @@ -354,14 +364,6 @@ vmx_init(void) return (ENODEV); } - /* Enable second level for procbased */ - err = vmx_set_ctl_setting(&vmx_procbased, - PROCBASED_ACTIVATE_SECONDARY_CONTROLS, - ONE); - if (err) { - kprintf("VMM: PROCBASED_ACTIVATE_SECONDARY_CONTROLS not supported by this CPU\n"); - return (ENODEV); - } /* Set 64bits mode for GUEST */ err = vmx_set_ctl_setting(&vmx_entry, -- 2.41.0