FROMGIT: KVM: arm64: Tear down vGIC on failed vCPU creation
If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU. Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error. Cc: <stable@vger.kernel.org> Cc: Marc Zyngier <maz@kernel.org> Cc: Oliver Upton <oliver.upton@linux.dev> Cc: Quentin Perret <qperret@google.com> Signed-off-by:Will Deacon <will@kernel.org> Reviewed-by:
Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20250314133409.9123-1-will@kernel.org Signed-off-by:
Oliver Upton <oliver.upton@linux.dev> (cherry picked from commit 250f2536 git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git next) Bug: 395480470 Signed-off-by:
Will Deacon <willdeacon@google.com> Change-Id: I0d6710ecc1ef7208e79ea8103087b74b2515ffc2
Loading
Please sign in to comment