linux/virt/kvm/arm/vgic
Christoffer Dall d9ae449b3d KVM: arm64: vgic-its: Make updates to propbaser/pendbaser atomic
There are two problems with the current implementation of the MMIO
handlers for the propbaser and pendbaser:

First, the write to the value itself is not guaranteed to be an atomic
64-bit write so two concurrent writes to the structure field could be
intermixed.

Second, because we do a read-modify-update operation without any
synchronization, if we have two 32-bit accesses to separate parts of the
register, we can loose one of them.

By using the atomic cmpxchg64 we should cover both issues above.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2016-08-15 23:00:20 +02:00
..
vgic-init.c KVM/ARM Changes for v4.8 - Take 2 2016-08-04 13:59:56 +02:00
vgic-irqfd.c KVM: arm: vgic-irqfd: Workaround changing kvm_set_routing_entry prototype 2016-07-24 10:37:38 +01:00
vgic-its.c KVM: arm64: vgic-its: Handle errors from vgic_add_lpi 2016-08-10 11:41:35 +02:00
vgic-kvm-device.c KVM: arm64: vgic-its: Enable ITS emulation as a virtual MSI controller 2016-07-18 18:14:38 +01:00
vgic-mmio-v2.c KVM: arm/arm64: Fix vGICv2 KVM_DEV_ARM_VGIC_GRP_CPU/DIST_REGS 2016-07-18 18:15:15 +01:00
vgic-mmio-v3.c KVM: arm64: vgic-its: Make updates to propbaser/pendbaser atomic 2016-08-15 23:00:20 +02:00
vgic-mmio.c KVM: arm/arm64: Fix vGICv2 KVM_DEV_ARM_VGIC_GRP_CPU/DIST_REGS 2016-07-18 18:15:15 +01:00
vgic-mmio.h KVM: arm64: vgic-its: Implement basic ITS register handlers 2016-07-18 18:14:36 +01:00
vgic-v2.c KVM: arm/arm64: vgic: Add refcounting for IRQs 2016-07-18 18:10:48 +01:00
vgic-v3.c KVM: arm64: vgic-its: Connect LPIs to the VGIC emulation 2016-07-18 18:14:36 +01:00
vgic.c KVM: arm64: vgic-its: Plug race in vgic_put_irq 2016-08-10 11:41:54 +02:00
vgic.h KVM: arm64: vgic-its: Generalize use of vgic_get_irq_kref 2016-07-18 18:15:16 +01:00