diff options
| author | Fuad Tabba <fuad.tabba@linux.dev> | 2026-08-02 16:08:45 +0100 |
|---|---|---|
| committer | Oliver Upton <oupton@kernel.org> | 2026-08-11 10:41:13 -0700 |
| commit | 43347154e7ab642474c886bc54ad090166c0d9c9 (patch) | |
| tree | ed4310739642fe996420cec5f5db1bed6cc4ff06 /include/linux/workqueue_api.h | |
| parent | c6d9c8ac6521d3049ec90ac58bebd23ed03ac496 (diff) | |
KVM: arm64: vgic: Reset in_kernel on private IRQ allocation failure
kvm_vgic_create() sets vgic.in_kernel before allocating the per-vCPU
private IRQs, but the allocation-failure path resets only vgic_model and
leaves in_kernel set. As irqchip_in_kernel() is !!in_kernel, the VM is
left with an in-kernel irqchip but no model, and the -EEXIST guard at the
top of kvm_vgic_create() rejects every retry, so userspace cannot recover
from a transient -ENOMEM.
Reset in_kernel alongside vgic_model on the failure path.
Fixes: 9435c1e1431003 ("KVM: arm64: gic: Set vgic_model before initing private IRQs")
Cc: stable@vger.kernel.org
Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev>
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260802150845.3485757-1-fuad.tabba@linux.dev
Signed-off-by: Oliver Upton <oupton@kernel.org>
Diffstat (limited to 'include/linux/workqueue_api.h')
0 files changed, 0 insertions, 0 deletions
