KVM: x86/mmu: Drop ignored return value from kvm_tdp_mmu_clear_dirty_slot()
authorSean Christopherson <seanjc@google.com>
Fri, 11 Oct 2024 02:10:38 +0000 (19:10 -0700)
committerSean Christopherson <seanjc@google.com>
Wed, 30 Oct 2024 21:46:46 +0000 (14:46 -0700)
Drop the return value from kvm_tdp_mmu_clear_dirty_slot() as its sole
caller ignores the result (KVM flushes after clearing dirty logs based on
the logs themselves, not based on SPTEs).

Cc: David Matlack <dmatlack@google.com>
Link: https://lore.kernel.org/r/20241011021051.1557902-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/mmu/tdp_mmu.c
arch/x86/kvm/mmu/tdp_mmu.h

index 91caa73a905b9b458f681f07d06c776faddf97b8..9c66be7fb002ef30b8992d1d95b6eacd652e3be9 100644 (file)
@@ -1492,13 +1492,12 @@ static bool tdp_mmu_need_write_protect(struct kvm_mmu_page *sp)
        return kvm_mmu_page_ad_need_write_protect(sp) || !kvm_ad_enabled();
 }
 
-static bool clear_dirty_gfn_range(struct kvm *kvm, struct kvm_mmu_page *root,
-                          gfn_t start, gfn_t end)
+static void clear_dirty_gfn_range(struct kvm *kvm, struct kvm_mmu_page *root,
+                                 gfn_t start, gfn_t end)
 {
        const u64 dbit = tdp_mmu_need_write_protect(root) ? PT_WRITABLE_MASK :
                                                            shadow_dirty_mask;
        struct tdp_iter iter;
-       bool spte_set = false;
 
        rcu_read_lock();
 
@@ -1519,31 +1518,24 @@ retry:
 
                if (tdp_mmu_set_spte_atomic(kvm, &iter, iter.old_spte & ~dbit))
                        goto retry;
-
-               spte_set = true;
        }
 
        rcu_read_unlock();
-       return spte_set;
 }
 
 /*
  * Clear the dirty status (D-bit or W-bit) of all the SPTEs mapping GFNs in the
- * memslot. Returns true if an SPTE has been changed and the TLBs need to be
- * flushed.
+ * memslot.
  */
-bool kvm_tdp_mmu_clear_dirty_slot(struct kvm *kvm,
+void kvm_tdp_mmu_clear_dirty_slot(struct kvm *kvm,
                                  const struct kvm_memory_slot *slot)
 {
        struct kvm_mmu_page *root;
-       bool spte_set = false;
 
        lockdep_assert_held_read(&kvm->mmu_lock);
        for_each_valid_tdp_mmu_root_yield_safe(kvm, root, slot->as_id)
-               spte_set |= clear_dirty_gfn_range(kvm, root, slot->base_gfn,
-                               slot->base_gfn + slot->npages);
-
-       return spte_set;
+               clear_dirty_gfn_range(kvm, root, slot->base_gfn,
+                                     slot->base_gfn + slot->npages);
 }
 
 static void clear_dirty_pt_masked(struct kvm *kvm, struct kvm_mmu_page *root,
index 1b74e058a81c9581202a7d32f79a46abfb04ea73..d842bfe103ab86b7bfefe72e6e31ed20d8503f47 100644 (file)
@@ -34,7 +34,7 @@ bool kvm_tdp_mmu_test_age_gfn(struct kvm *kvm, struct kvm_gfn_range *range);
 
 bool kvm_tdp_mmu_wrprot_slot(struct kvm *kvm,
                             const struct kvm_memory_slot *slot, int min_level);
-bool kvm_tdp_mmu_clear_dirty_slot(struct kvm *kvm,
+void kvm_tdp_mmu_clear_dirty_slot(struct kvm *kvm,
                                  const struct kvm_memory_slot *slot);
 void kvm_tdp_mmu_clear_dirty_pt_masked(struct kvm *kvm,
                                       struct kvm_memory_slot *slot,