From: Sean Christopherson Date: Thu, 10 Oct 2024 18:24:17 +0000 (-0700) Subject: KVM: Convert gfn_to_page() to use kvm_follow_pfn() X-Git-Tag: v6.13-rc1~97^2~17^2~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce6bf70346891f75e400f93193773fcbf72c27fc;p=thirdparty%2Fkernel%2Flinux.git KVM: Convert gfn_to_page() to use kvm_follow_pfn() Convert gfn_to_page() to the new kvm_follow_pfn() internal API, which will eventually allow removing gfn_to_pfn() and kvm_pfn_to_refcounted_page(). Tested-by: Alex Bennée Signed-off-by: Sean Christopherson Tested-by: Dmitry Osipenko Signed-off-by: Paolo Bonzini Message-ID: <20241010182427.1434605-76-seanjc@google.com> --- diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index f79745d6500c2..5a424598610f7 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -3139,14 +3139,16 @@ EXPORT_SYMBOL_GPL(kvm_prefetch_pages); */ struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn) { - kvm_pfn_t pfn; - - pfn = gfn_to_pfn(kvm, gfn); - - if (is_error_noslot_pfn(pfn)) - return NULL; + struct page *refcounted_page = NULL; + struct kvm_follow_pfn kfp = { + .slot = gfn_to_memslot(kvm, gfn), + .gfn = gfn, + .flags = FOLL_WRITE, + .refcounted_page = &refcounted_page, + }; - return kvm_pfn_to_refcounted_page(pfn); + (void)kvm_follow_pfn(&kfp); + return refcounted_page; } EXPORT_SYMBOL_GPL(gfn_to_page);