KVM: x86/mmu: Fix uninitialized boolean variable flush
authorColin Ian King <colin.king@canonical.com>
Tue, 22 Jun 2021 15:09:12 +0000 (16:09 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 24 Jun 2021 08:31:16 +0000 (04:31 -0400)
In the case where kvm_memslots_have_rmaps(kvm) is false the boolean
variable flush is not set and is uninitialized.  If is_tdp_mmu_enabled(kvm)
is true then the call to kvm_tdp_mmu_zap_collapsible_sptes passes the
uninitialized value of flush into the call. Fix this by initializing
flush to false.

Addresses-Coverity: ("Uninitialized scalar variable")
Fixes: e2209710ccc5 ("KVM: x86/mmu: Skip rmap operations if rmaps not allocated")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Reviewed-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210622150912.23429-1-colin.king@canonical.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/mmu.c

index 84d48a3..b3be690 100644 (file)
@@ -5689,7 +5689,7 @@ void kvm_mmu_zap_collapsible_sptes(struct kvm *kvm,
 {
        /* FIXME: const-ify all uses of struct kvm_memory_slot.  */
        struct kvm_memory_slot *slot = (struct kvm_memory_slot *)memslot;
-       bool flush;
+       bool flush = false;
 
        if (kvm_memslots_have_rmaps(kvm)) {
                write_lock(&kvm->mmu_lock);