diff options
-rw-r--r-- | arch/x86/kvm/vmx.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 801332edefc3..4f84be0d2d1e 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c | |||
@@ -5918,7 +5918,7 @@ static int nested_vmx_check_vmptr(struct kvm_vcpu *vcpu, int exit_reason, | |||
5918 | * which replaces physical address width with 32 | 5918 | * which replaces physical address width with 32 |
5919 | * | 5919 | * |
5920 | */ | 5920 | */ |
5921 | if (!IS_ALIGNED(vmptr, PAGE_SIZE) || (vmptr >> maxphyaddr)) { | 5921 | if (!PAGE_ALIGNED(vmptr) || (vmptr >> maxphyaddr)) { |
5922 | nested_vmx_failInvalid(vcpu); | 5922 | nested_vmx_failInvalid(vcpu); |
5923 | skip_emulated_instruction(vcpu); | 5923 | skip_emulated_instruction(vcpu); |
5924 | return 1; | 5924 | return 1; |
@@ -5936,7 +5936,7 @@ static int nested_vmx_check_vmptr(struct kvm_vcpu *vcpu, int exit_reason, | |||
5936 | vmx->nested.vmxon_ptr = vmptr; | 5936 | vmx->nested.vmxon_ptr = vmptr; |
5937 | break; | 5937 | break; |
5938 | case EXIT_REASON_VMCLEAR: | 5938 | case EXIT_REASON_VMCLEAR: |
5939 | if (!IS_ALIGNED(vmptr, PAGE_SIZE) || (vmptr >> maxphyaddr)) { | 5939 | if (!PAGE_ALIGNED(vmptr) || (vmptr >> maxphyaddr)) { |
5940 | nested_vmx_failValid(vcpu, | 5940 | nested_vmx_failValid(vcpu, |
5941 | VMXERR_VMCLEAR_INVALID_ADDRESS); | 5941 | VMXERR_VMCLEAR_INVALID_ADDRESS); |
5942 | skip_emulated_instruction(vcpu); | 5942 | skip_emulated_instruction(vcpu); |
@@ -5951,7 +5951,7 @@ static int nested_vmx_check_vmptr(struct kvm_vcpu *vcpu, int exit_reason, | |||
5951 | } | 5951 | } |
5952 | break; | 5952 | break; |
5953 | case EXIT_REASON_VMPTRLD: | 5953 | case EXIT_REASON_VMPTRLD: |
5954 | if (!IS_ALIGNED(vmptr, PAGE_SIZE) || (vmptr >> maxphyaddr)) { | 5954 | if (!PAGE_ALIGNED(vmptr) || (vmptr >> maxphyaddr)) { |
5955 | nested_vmx_failValid(vcpu, | 5955 | nested_vmx_failValid(vcpu, |
5956 | VMXERR_VMPTRLD_INVALID_ADDRESS); | 5956 | VMXERR_VMPTRLD_INVALID_ADDRESS); |
5957 | skip_emulated_instruction(vcpu); | 5957 | skip_emulated_instruction(vcpu); |
@@ -8113,14 +8113,14 @@ static int nested_vmx_run(struct kvm_vcpu *vcpu, bool launch) | |||
8113 | } | 8113 | } |
8114 | 8114 | ||
8115 | if ((vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_MSR_BITMAPS) && | 8115 | if ((vmcs12->cpu_based_vm_exec_control & CPU_BASED_USE_MSR_BITMAPS) && |
8116 | !IS_ALIGNED(vmcs12->msr_bitmap, PAGE_SIZE)) { | 8116 | !PAGE_ALIGNED(vmcs12->msr_bitmap)) { |
8117 | /*TODO: Also verify bits beyond physical address width are 0*/ | 8117 | /*TODO: Also verify bits beyond physical address width are 0*/ |
8118 | nested_vmx_failValid(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD); | 8118 | nested_vmx_failValid(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD); |
8119 | return 1; | 8119 | return 1; |
8120 | } | 8120 | } |
8121 | 8121 | ||
8122 | if (nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES) && | 8122 | if (nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES) && |
8123 | !IS_ALIGNED(vmcs12->apic_access_addr, PAGE_SIZE)) { | 8123 | !PAGE_ALIGNED(vmcs12->apic_access_addr)) { |
8124 | /*TODO: Also verify bits beyond physical address width are 0*/ | 8124 | /*TODO: Also verify bits beyond physical address width are 0*/ |
8125 | nested_vmx_failValid(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD); | 8125 | nested_vmx_failValid(vcpu, VMXERR_ENTRY_INVALID_CONTROL_FIELD); |
8126 | return 1; | 8126 | return 1; |