Skip to content

Commit ce6bf70

Browse files
sean-jcbonzini
authored andcommitted
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 <alex.bennee@linaro.org> Signed-off-by: Sean Christopherson <seanjc@google.com> Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-ID: <20241010182427.1434605-76-seanjc@google.com>
1 parent ee0fa69 commit ce6bf70

1 file changed

Lines changed: 9 additions & 7 deletions

File tree

virt/kvm/kvm_main.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3139,14 +3139,16 @@ EXPORT_SYMBOL_GPL(kvm_prefetch_pages);
31393139
*/
31403140
struct page *gfn_to_page(struct kvm *kvm, gfn_t gfn)
31413141
{
3142-
kvm_pfn_t pfn;
3143-
3144-
pfn = gfn_to_pfn(kvm, gfn);
3145-
3146-
if (is_error_noslot_pfn(pfn))
3147-
return NULL;
3142+
struct page *refcounted_page = NULL;
3143+
struct kvm_follow_pfn kfp = {
3144+
.slot = gfn_to_memslot(kvm, gfn),
3145+
.gfn = gfn,
3146+
.flags = FOLL_WRITE,
3147+
.refcounted_page = &refcounted_page,
3148+
};
31483149

3149-
return kvm_pfn_to_refcounted_page(pfn);
3150+
(void)kvm_follow_pfn(&kfp);
3151+
return refcounted_page;
31503152
}
31513153
EXPORT_SYMBOL_GPL(gfn_to_page);
31523154

0 commit comments

Comments
 (0)