Subject: Re: [PATCH v2 3/3] KVM: Take gpa_t in kvm_vcpu_map[_readonly]()

From: Sean Christopherson <[email-masked]>
Date: Tue, 21 Apr 2026 16:19:03 -0700

On Tue, Apr 21, 2026, Yosry Ahmed wrote:
> On Tue, Apr 07, 2026 at 05:11:30PM -0700, Peter Fang wrote:
> > Move the conversion from a gpa_t to a gfn_t into kvm_vcpu_map() and
> > kvm_vcpu_map_readonly() so that they take a gpa_t directly, reducing
> > boilerplate at call sites.
> > 
> > __kvm_vcpu_map() still takes a gfn_t because guest page mapping is
> > fundamentally GFN-based.
> > 
> > No functional change intended.
> > 
> > Compile-tested on x86 and ppc, which are the current users of these
> > interfaces.
> > 
> > Suggested-by: Yosry Ahmed <[email-masked]>
> > Signed-off-by: Peter Fang <[email-masked]>
> > ---
> 
> I was going to suggest a WARN in kvm_vcpu_map() and
> kvm_vcpu_map_readonly() if the passed GPA is not page-aligned, but Sean
> usually hates my paranoid WARN suggestions.

Heh, for good reason.  Adding such a WARN would be triggered by this code:

                if (!kvm_vcpu_map(vcpu, vmcs12->posted_intr_desc_addr, map)) {
                        vmx->nested.pi_desc =
                                (struct pi_desc *)(((void *)map->hva) +
                                offset_in_page(vmcs12->posted_intr_desc_addr));

The PI descriptor only needs to be 64-bit aligned, not page-aligned.