linux/virt/kvm/arm/vgic
Marc Zyngier 1193e6aeec KVM: arm/arm64: vgic: Fix deadlock on error handling
Dmitry Vyukov reported that the syzkaller fuzzer triggered a
deadlock in the vgic setup code when an error was detected, as
the cleanup code tries to take a lock that is already held by
the setup code.

The fix is to avoid retaking the lock when cleaning up, by
telling the cleanup function that we already hold it.

Cc: stable@vger.kernel.org
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2017-01-13 11:19:35 +00:00
..
vgic-init.c KVM: arm/arm64: vgic: Fix deadlock on error handling 2017-01-13 11:19:35 +00:00
vgic-irqfd.c KVM: arm: vgic: Drop build compatibility hack for older kernel versions 2016-09-08 12:53:00 +02:00
vgic-its.c KVM: arm64: vgic-its: Fix compatibility with 32-bit 2016-11-14 10:32:24 +00:00
vgic-kvm-device.c ARM: KVM: Support vGICv3 ITS 2016-11-14 10:32:54 +00:00
vgic-mmio-v2.c KVM: arm/arm64: vgic-v2: Limit ITARGETSR bits to number of VCPUs 2016-12-09 15:46:59 +00:00
vgic-mmio-v3.c ARM: KVM: Support vGICv3 ITS 2016-11-14 10:32:54 +00:00
vgic-mmio.c KVM: arm/arm64: vgic: Prevent access to invalid SPIs 2016-11-04 17:56:54 +00:00
vgic-mmio.h KVM: arm/arm64: vgic: Prevent access to invalid SPIs 2016-11-04 17:56:54 +00:00
vgic-v2.c KVM: arm/arm64: vgic: Fix deadlock on error handling 2017-01-13 11:19:35 +00:00
vgic-v3.c KVM: arm/arm64: vgic: Fix deadlock on error handling 2017-01-13 11:19:35 +00:00
vgic.c KVM: arm/arm64: vgic: Kick VCPUs when queueing already pending IRQs 2016-11-04 17:56:56 +00:00
vgic.h ARM: KVM: Support vGICv3 ITS 2016-11-14 10:32:54 +00:00