]> git.baikalelectronics.ru Git - kernel.git/commitdiff
KVM: X86: Fix x86_emulator slab cache leak
authorWanpeng Li <wanpengli@tencent.com>
Fri, 11 Jun 2021 04:59:33 +0000 (21:59 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 11 Jun 2021 15:53:48 +0000 (11:53 -0400)
Commit 9db4273554f86 (KVM: x86: Dynamically allocate per-vCPU emulation context)
tries to allocate per-vCPU emulation context dynamically, however, the
x86_emulator slab cache is still exiting after the kvm module is unload
as below after destroying the VM and unloading the kvm module.

grep x86_emulator /proc/slabinfo
x86_emulator          36     36   2672   12    8 : tunables    0    0    0 : slabdata      3      3      0

This patch fixes this slab cache leak by destroying the x86_emulator slab cache
when the kvm module is unloaded.

Fixes: 9db4273554f86 (KVM: x86: Dynamically allocate per-vCPU emulation context)
Cc: stable@vger.kernel.org
Signed-off-by: Wanpeng Li <wanpengli@tencent.com>
Message-Id: <1623387573-5969-1-git-send-email-wanpengli@tencent.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 54d212fe9b156ee631f7880fd5e90f8856460cfd..6d425310054b4f52d8dcd07777b12ee1337336f2 100644 (file)
@@ -8261,6 +8261,7 @@ void kvm_arch_exit(void)
        kvm_x86_ops.hardware_enable = NULL;
        kvm_mmu_module_exit();
        free_percpu(user_return_msrs);
+       kmem_cache_destroy(x86_emulator_cache);
        kmem_cache_destroy(x86_fpu_cache);
 #ifdef CONFIG_KVM_XEN
        static_key_deferred_flush(&kvm_xen_enabled);