From: Sean Christopherson Date: Thu, 10 Oct 2024 18:24:23 +0000 (-0700) Subject: KVM: Make kvm_follow_pfn.refcounted_page a required field X-Git-Tag: v6.13-rc1~97^2~17^2~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31fccdd21263f12e8b701ad90a78e31e789cb780;p=thirdparty%2Fkernel%2Flinux.git KVM: Make kvm_follow_pfn.refcounted_page a required field Now that the legacy gfn_to_pfn() APIs are gone, and all callers of hva_to_pfn() pass in a refcounted_page pointer, make it a required field to ensure all future usage in KVM plays nice. Tested-by: Alex Bennée Signed-off-by: Sean Christopherson Tested-by: Dmitry Osipenko Signed-off-by: Paolo Bonzini Message-ID: <20241010182427.1434605-82-seanjc@google.com> --- diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index b2c8d429442d3..a483da96f4be3 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -2834,8 +2834,7 @@ static kvm_pfn_t kvm_resolve_pfn(struct kvm_follow_pfn *kfp, struct page *page, pfn = page_to_pfn(page); } - if (kfp->refcounted_page) - *kfp->refcounted_page = page; + *kfp->refcounted_page = page; return pfn; } @@ -2986,6 +2985,9 @@ kvm_pfn_t hva_to_pfn(struct kvm_follow_pfn *kfp) might_sleep(); + if (WARN_ON_ONCE(!kfp->refcounted_page)) + return KVM_PFN_ERR_FAULT; + if (hva_to_pfn_fast(kfp, &pfn)) return pfn;