]> err.no Git - linux-2.6/commitdiff
KVM: VMX: Clear CR4.VMXE in hardware_disable
authorEli Collins <ecollins@vmware.com>
Mon, 2 Jun 2008 03:24:40 +0000 (20:24 -0700)
committerAvi Kivity <avi@qumranet.com>
Fri, 6 Jun 2008 18:30:20 +0000 (21:30 +0300)
Clear CR4.VMXE in hardware_disable. There's no reason to leave it set
after doing a VMXOFF.

VMware Workstation 6.5 checks CR4.VMXE as a proxy for whether the CPU is
in VMX mode, so leaving VMXE set means we'll refuse to power on. With this
change the user can power on after unloading the kvm-intel module. I
tested on kvm-67 and kvm-69.

Signed-off-by: Eli Collins <ecollins@vmware.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/vmx.c

index 96445f341519c5933e899d1aa21039501d1b0588..02efbe75f317d68b8f24a6bd7945eaaeffcbfe89 100644 (file)
@@ -1036,6 +1036,7 @@ static void hardware_enable(void *garbage)
 static void hardware_disable(void *garbage)
 {
        asm volatile (ASM_VMX_VMXOFF : : : "cc");
+       write_cr4(read_cr4() & ~X86_CR4_VMXE);
 }
 
 static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt,