linux/virt/kvm/arm
Marc Zyngier 97ef3a5027 KVM: arm/arm64: Fix spinlock acquisition in vgic_set_owner
[ Upstream commit 7465894e90 ]

vgic_set_owner acquires the irq lock without disabling interrupts,
resulting in a lockdep splat (an interrupt could fire and result
in the same lock being taken if the same virtual irq is to be
injected).

In practice, it is almost impossible to trigger this bug, but
better safe than sorry. Convert the lock acquisition to a
spin_lock_irqsave() and keep lockdep happy.

Reported-by: James Morse <james.morse@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2018-02-25 11:07:56 +01:00
..
hyp KVM: arm/arm64: Fix broken GICH_ELRSR big endian conversion 2017-12-14 09:53:01 +01:00
vgic KVM: arm/arm64: Fix spinlock acquisition in vgic_set_owner 2018-02-25 11:07:56 +01:00
aarch32.c KVM: arm64: Make kvm_condition_valid32() accessible from EL2 2017-06-15 09:44:58 +01:00
arch_timer.c KVM: arm/arm64: Disallow userspace control of in-kernel IRQ lines 2017-06-08 17:58:40 +02:00
arm.c kvm: arm: don't treat unavailable HYP mode as an error 2018-02-25 11:07:55 +01:00
mmio.c KVM: Fix stack-out-of-bounds read in write_mmio 2018-01-17 09:45:17 +01:00
mmu.c KVM: arm/arm64: Check pagesize when allocating a hugepage at Stage 2 2018-01-23 19:58:19 +01:00
perf.c KVM: arm/arm64: Move shared files to virt/kvm/arm 2017-05-04 13:57:26 +02:00
pmu.c KVM: arm/arm64: PMU: Fix overflow interrupt injection 2017-07-25 14:18:01 +01:00
psci.c arm64: KVM: Report SMCCC_ARCH_WORKAROUND_1 BP hardening support 2018-02-16 20:22:55 +01:00
trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00