KVM: VMX: Zero the vpid module parameter if vpid is not supported
authorAvi Kivity <avi@redhat.com>
Mon, 23 Mar 2009 16:01:29 +0000 (18:01 +0200)
committerAvi Kivity <avi@redhat.com>
Wed, 10 Jun 2009 08:48:32 +0000 (11:48 +0300)
This allows reading back how the hardware is configured.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/vmx.c

index f4b6c4b..9b97c8e 100644 (file)
@@ -1202,6 +1202,9 @@ static __init int setup_vmcs_config(struct vmcs_config *vmcs_conf)
                      vmx_capability.ept, vmx_capability.vpid);
        }
 
+       if (!cpu_has_vmx_vpid())
+               enable_vpid = 0;
+
        min = 0;
 #ifdef CONFIG_X86_64
        min |= VM_EXIT_HOST_ADDR_SPACE_SIZE;
@@ -2082,7 +2085,7 @@ static void allocate_vpid(struct vcpu_vmx *vmx)
        int vpid;
 
        vmx->vpid = 0;
-       if (!enable_vpid || !cpu_has_vmx_vpid())
+       if (!enable_vpid)
                return;
        spin_lock(&vmx_vpid_lock);
        vpid = find_first_zero_bit(vmx_vpid_bitmap, VMX_NR_VPIDS);