diff options
author | Sean Christopherson <seanjc@google.com> | 2021-02-03 16:01:09 -0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2021-02-04 09:27:27 -0500 |
commit | da6c6a7c06e268f53c0560edc9dff372f11218f5 (patch) | |
tree | c5f52ff309825abfa9242b6497ce3ed3608e551f /arch/x86/kvm | |
parent | 4bda0e97868a95553ba71d87f593756e1ffd654b (diff) | |
download | linux-da6c6a7c06e268f53c0560edc9dff372f11218f5.tar.bz2 |
KVM: x86: Add a helper to handle legal GPA with an alignment requirement
Add a helper to genericize checking for a legal GPA that also must
conform to an arbitrary alignment, and use it in the existing
page_address_valid(). Future patches will replace open coded variants
in VMX and SVM.
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210204000117.3303214-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r-- | arch/x86/kvm/cpuid.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h index 674d61079f2d..a9d55ab51e3c 100644 --- a/arch/x86/kvm/cpuid.h +++ b/arch/x86/kvm/cpuid.h @@ -46,9 +46,15 @@ static inline bool kvm_vcpu_is_illegal_gpa(struct kvm_vcpu *vcpu, gpa_t gpa) return !kvm_vcpu_is_legal_gpa(vcpu, gpa); } +static inline bool kvm_vcpu_is_legal_aligned_gpa(struct kvm_vcpu *vcpu, + gpa_t gpa, gpa_t alignment) +{ + return IS_ALIGNED(gpa, alignment) && kvm_vcpu_is_legal_gpa(vcpu, gpa); +} + static inline bool page_address_valid(struct kvm_vcpu *vcpu, gpa_t gpa) { - return PAGE_ALIGNED(gpa) && kvm_vcpu_is_legal_gpa(vcpu, gpa); + return kvm_vcpu_is_legal_aligned_gpa(vcpu, gpa, PAGE_SIZE); } struct cpuid_reg { |