KVM: Use vfree for memory allocated by vcalloc()/__vcalloc()
authorLi RongQing <lirongqing@baidu.com>
Wed, 31 Jan 2024 01:23:57 +0000 (09:23 +0800)
committerSean Christopherson <seanjc@google.com>
Tue, 9 Apr 2024 19:18:38 +0000 (12:18 -0700)
commit 37b2a6510a48("KVM: use __vcalloc for very large allocations")
replaced kvzalloc()/kvcalloc() with vcalloc(), but didn't replace kvfree()
with vfree().

Signed-off-by: Li RongQing <lirongqing@baidu.com>
Link: https://lore.kernel.org/r/20240131012357.53563-1-lirongqing@baidu.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/mmu/page_track.c
arch/x86/kvm/x86.c
virt/kvm/kvm_main.c

index f6448284c18e3e1a2820530a4919f151a10c997b..561c331fd6ecc728d7b6ac85cde9743d0eb2f8a5 100644 (file)
@@ -41,7 +41,7 @@ bool kvm_page_track_write_tracking_enabled(struct kvm *kvm)
 
 void kvm_page_track_free_memslot(struct kvm_memory_slot *slot)
 {
-       kvfree(slot->arch.gfn_write_track);
+       vfree(slot->arch.gfn_write_track);
        slot->arch.gfn_write_track = NULL;
 }
 
index 47d9f03b7778373393b9853fe32b153dadd9de29..7e654ebd94107f72c422b600ba3923d2abfdd8cc 100644 (file)
@@ -12731,7 +12731,7 @@ static void memslot_rmap_free(struct kvm_memory_slot *slot)
        int i;
 
        for (i = 0; i < KVM_NR_PAGE_SIZES; ++i) {
-               kvfree(slot->arch.rmap[i]);
+               vfree(slot->arch.rmap[i]);
                slot->arch.rmap[i] = NULL;
        }
 }
@@ -12743,7 +12743,7 @@ void kvm_arch_free_memslot(struct kvm *kvm, struct kvm_memory_slot *slot)
        memslot_rmap_free(slot);
 
        for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) {
-               kvfree(slot->arch.lpage_info[i - 1]);
+               vfree(slot->arch.lpage_info[i - 1]);
                slot->arch.lpage_info[i - 1] = NULL;
        }
 
@@ -12835,7 +12835,7 @@ out_free:
        memslot_rmap_free(slot);
 
        for (i = 1; i < KVM_NR_PAGE_SIZES; ++i) {
-               kvfree(slot->arch.lpage_info[i - 1]);
+               vfree(slot->arch.lpage_info[i - 1]);
                slot->arch.lpage_info[i - 1] = NULL;
        }
        return -ENOMEM;
index fb49c2a602002ed30a5f426203fa0e30be2436b0..711970d385f5b2bb5b5fff80b5b1b631ef269100 100644 (file)
@@ -1020,7 +1020,7 @@ static void kvm_destroy_dirty_bitmap(struct kvm_memory_slot *memslot)
        if (!memslot->dirty_bitmap)
                return;
 
-       kvfree(memslot->dirty_bitmap);
+       vfree(memslot->dirty_bitmap);
        memslot->dirty_bitmap = NULL;
 }