]> Git Repo - linux.git/commitdiff
KVM: remove kvm_arch_gmem_prepare_needed()
authorPaolo Bonzini <[email protected]>
Thu, 11 Jul 2024 22:27:51 +0000 (18:27 -0400)
committerPaolo Bonzini <[email protected]>
Fri, 26 Jul 2024 18:46:14 +0000 (14:46 -0400)
It is enough to return 0 if a guest need not do any preparation.
This is in fact how sev_gmem_prepare() works for non-SNP guests,
and it extends naturally to Intel hosts: the x86 callback for
gmem_prepare is optional and returns 0 if not defined.

Reviewed-by: Michael Roth <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
arch/x86/kvm/x86.c
include/linux/kvm_host.h
virt/kvm/guest_memfd.c

index 4db18924b2f2763786e138a167493ca070830f17..ef3d3511e4af560ab3480d7a1a723072fea94f88 100644 (file)
@@ -13645,11 +13645,6 @@ bool kvm_arch_no_poll(struct kvm_vcpu *vcpu)
 EXPORT_SYMBOL_GPL(kvm_arch_no_poll);
 
 #ifdef CONFIG_HAVE_KVM_ARCH_GMEM_PREPARE
-bool kvm_arch_gmem_prepare_needed(struct kvm *kvm)
-{
-       return kvm->arch.vm_type == KVM_X86_SNP_VM;
-}
-
 int kvm_arch_gmem_prepare(struct kvm *kvm, gfn_t gfn, kvm_pfn_t pfn, int max_order)
 {
        return kvm_x86_call(gmem_prepare)(kvm, pfn, gfn, max_order);
index 344d90771844f954f9cd8bcba7f0295528747c8c..45373d42f3141fd6b20f7cefd81b2e3f6bbe0373 100644 (file)
@@ -2447,7 +2447,6 @@ static inline int kvm_gmem_get_pfn(struct kvm *kvm,
 
 #ifdef CONFIG_HAVE_KVM_ARCH_GMEM_PREPARE
 int kvm_arch_gmem_prepare(struct kvm *kvm, gfn_t gfn, kvm_pfn_t pfn, int max_order);
-bool kvm_arch_gmem_prepare_needed(struct kvm *kvm);
 #endif
 
 /**
index 444ded162154fa7f181a58d51aba05a8b82b75fe..191fd42067c09dcbbe201357f9b6191542f956e6 100644 (file)
@@ -29,16 +29,9 @@ static int __kvm_gmem_prepare_folio(struct kvm *kvm, struct kvm_memory_slot *slo
                                    pgoff_t index, struct folio *folio)
 {
 #ifdef CONFIG_HAVE_KVM_ARCH_GMEM_PREPARE
-       kvm_pfn_t pfn;
-       gfn_t gfn;
-       int rc;
-
-       if (!kvm_arch_gmem_prepare_needed(kvm))
-               return 0;
-
-       pfn = folio_file_pfn(folio, index);
-       gfn = slot->base_gfn + index - slot->gmem.pgoff;
-       rc = kvm_arch_gmem_prepare(kvm, gfn, pfn, folio_order(folio));
+       kvm_pfn_t pfn = folio_file_pfn(folio, index);
+       gfn_t gfn = slot->base_gfn + index - slot->gmem.pgoff;
+       int rc = kvm_arch_gmem_prepare(kvm, gfn, pfn, folio_order(folio));
        if (rc) {
                pr_warn_ratelimited("gmem: Failed to prepare folio for index %lx GFN %llx PFN %llx error %d.\n",
                                    index, gfn, pfn, rc);
This page took 0.11377 seconds and 4 git commands to generate.