Re: [PATCH v5 13/13] KVM/nVMX: Use page_address_valid in a few more locations
On Wed, 2019-01-23 at 13:18 -0500, Konrad Rzeszutek Wilk wrote: > On Wed, Jan 09, 2019 at 10:42:13AM +0100, KarimAllah Ahmed wrote: > > > > Use page_address_valid in a few more locations that is already checking for > > a page aligned address that does not cross the maximum physical address. > > Where is this page_address_valid declared? The latest linus's tree does > not have it, nor does your patchset? It is already defined in the code, I can not see any commits that removed it: $ git grep page_address_valid arch/x86/kvm/vmx/nested.c:static bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, vmcs12- >io_bitmap_a) || arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, vmcs12->io_bitmap_ b)) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, vmcs12- >msr_bitmap)) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, vmcs12- >virtual_apic_page_addr)) arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, vmcs12- >apic_access_addr)) arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, vmcs12- >pml_address)) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, vmcs12- >vmread_bitmap) || arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, vmcs12- >vmwrite_bitmap)) arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, vmcs12->eptp_list_address)) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, vmcs12- >vmcs_link_pointer)) arch/x86/kvm/vmx/nested.c: if (!page_address_valid(vcpu, kvm_state- >vmx.vmxon_pa)) arch/x86/kvm/vmx/nested.c: !page_address_valid(vcpu, kvm_state- >vmx.vmcs_pa)) > > > > > > Signed-off-by: KarimAllah Ahmed > > --- > > arch/x86/kvm/vmx/nested.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > > index ccb3b63..77aad46 100644 > > --- a/arch/x86/kvm/vmx/nested.c > > +++ b/arch/x86/kvm/vmx/nested.c > > @@ -4203,7 +4203,7 @@ static int handle_vmon(struct kvm_vcpu *vcpu) > > * Note - IA32_VMX_BASIC[48] will never be 1 for the nested case; > > * which replaces physical address width with 32 > > */ > > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > > + if (!page_address_valid(vcpu, vmptr)) > > return nested_vmx_failInvalid(vcpu); > > > > if (kvm_read_guest(vcpu->kvm, vmptr, &revision, sizeof(revision)) || > > @@ -4266,7 +4266,7 @@ static int handle_vmclear(struct kvm_vcpu *vcpu) > > if (nested_vmx_get_vmptr(vcpu, &vmptr)) > > return 1; > > > > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > > + if (!page_address_valid(vcpu, vmptr)) > > return nested_vmx_failValid(vcpu, > > VMXERR_VMCLEAR_INVALID_ADDRESS); > > > > @@ -4473,7 +4473,7 @@ static int handle_vmptrld(struct kvm_vcpu *vcpu) > > if (nested_vmx_get_vmptr(vcpu, &vmptr)) > > return 1; > > > > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > > + if (!page_address_valid(vcpu, vmptr)) > > return nested_vmx_failValid(vcpu, > > VMXERR_VMPTRLD_INVALID_ADDRESS); > > > > -- > > 2.7.4 > > Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrer: Christian Schlaeger, Ralf Herbrich Ust-ID: DE 289 237 879 Eingetragen am Amtsgericht Charlottenburg HRB 149173 B
Re: [PATCH v5 13/13] KVM/nVMX: Use page_address_valid in a few more locations
On Wed, Jan 09, 2019 at 10:42:13AM +0100, KarimAllah Ahmed wrote: > Use page_address_valid in a few more locations that is already checking for > a page aligned address that does not cross the maximum physical address. Where is this page_address_valid declared? The latest linus's tree does not have it, nor does your patchset? > > Signed-off-by: KarimAllah Ahmed > --- > arch/x86/kvm/vmx/nested.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > index ccb3b63..77aad46 100644 > --- a/arch/x86/kvm/vmx/nested.c > +++ b/arch/x86/kvm/vmx/nested.c > @@ -4203,7 +4203,7 @@ static int handle_vmon(struct kvm_vcpu *vcpu) >* Note - IA32_VMX_BASIC[48] will never be 1 for the nested case; >* which replaces physical address width with 32 >*/ > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > + if (!page_address_valid(vcpu, vmptr)) > return nested_vmx_failInvalid(vcpu); > > if (kvm_read_guest(vcpu->kvm, vmptr, &revision, sizeof(revision)) || > @@ -4266,7 +4266,7 @@ static int handle_vmclear(struct kvm_vcpu *vcpu) > if (nested_vmx_get_vmptr(vcpu, &vmptr)) > return 1; > > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > + if (!page_address_valid(vcpu, vmptr)) > return nested_vmx_failValid(vcpu, > VMXERR_VMCLEAR_INVALID_ADDRESS); > > @@ -4473,7 +4473,7 @@ static int handle_vmptrld(struct kvm_vcpu *vcpu) > if (nested_vmx_get_vmptr(vcpu, &vmptr)) > return 1; > > - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) > + if (!page_address_valid(vcpu, vmptr)) > return nested_vmx_failValid(vcpu, > VMXERR_VMPTRLD_INVALID_ADDRESS); > > -- > 2.7.4 >
[PATCH v5 13/13] KVM/nVMX: Use page_address_valid in a few more locations
Use page_address_valid in a few more locations that is already checking for a page aligned address that does not cross the maximum physical address. Signed-off-by: KarimAllah Ahmed --- arch/x86/kvm/vmx/nested.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index ccb3b63..77aad46 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -4203,7 +4203,7 @@ static int handle_vmon(struct kvm_vcpu *vcpu) * Note - IA32_VMX_BASIC[48] will never be 1 for the nested case; * which replaces physical address width with 32 */ - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) + if (!page_address_valid(vcpu, vmptr)) return nested_vmx_failInvalid(vcpu); if (kvm_read_guest(vcpu->kvm, vmptr, &revision, sizeof(revision)) || @@ -4266,7 +4266,7 @@ static int handle_vmclear(struct kvm_vcpu *vcpu) if (nested_vmx_get_vmptr(vcpu, &vmptr)) return 1; - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) + if (!page_address_valid(vcpu, vmptr)) return nested_vmx_failValid(vcpu, VMXERR_VMCLEAR_INVALID_ADDRESS); @@ -4473,7 +4473,7 @@ static int handle_vmptrld(struct kvm_vcpu *vcpu) if (nested_vmx_get_vmptr(vcpu, &vmptr)) return 1; - if (!PAGE_ALIGNED(vmptr) || (vmptr >> cpuid_maxphyaddr(vcpu))) + if (!page_address_valid(vcpu, vmptr)) return nested_vmx_failValid(vcpu, VMXERR_VMPTRLD_INVALID_ADDRESS); -- 2.7.4