[PW_SID:1080480] riscv: KVM: Fix memory leak in vector context allocation#1757
[PW_SID:1080480] riscv: KVM: Fix memory leak in vector context allocation#1757linux-riscv-bot wants to merge 1 commit into
Conversation
When the second kzalloc() for host_context vector data fails,
the already-allocated guest_context vector data is not freed,
causing a memory leak. This is triggerable from userspace via:
ioctl(vm_fd, KVM_CREATE_VCPU)
→ kvm_vm_ioctl_create_vcpu()
→ kvm_arch_vcpu_create()
→ kvm_riscv_vcpu_alloc_vector_context()
Note also that kvm_vm_ioctl_create_vcpu() does not call
kvm_arch_vcpu_destroy() on kvm_arch_vcpu_create() failure:
kvm_arch_vcpu_create() ← fails, returns error
goto vcpu_free_run_page; ← line 4209
...
arch_vcpu_destroy: ← SKIPPED
kvm_arch_vcpu_destroy(vcpu); ← which would call free_vector_context
vcpu_free_run_page: ← lands HERE, below arch_vcpu_destroy
free_page(vcpu->run);
vcpu_free:
kmem_cache_free(vcpu);
so kvm_riscv_vcpu_free_vector_context() is never called to
clean up the partial allocation.
Fixes: 0f4b825 ("RISC-V: KVM: Add vector lazy save/restore support")
Assisted-By: Claude Opus 4.6 (1M context)
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Linux RISC-V bot <linux.riscv.bot@gmail.com>
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
|
Patch 1: "riscv: KVM: Fix memory leak in vector context allocation" |
PR for series 1080480 applied to workflow__riscv__fixes
Name: riscv: KVM: Fix memory leak in vector context allocation
URL: https://patchwork.kernel.org/project/linux-riscv/list/?series=1080480
Version: 1