linux/virt/kvm/arm
Marc Zyngier d3d83f7fef KVM: arm/arm64: GICv4: Prevent userspace from changing doorbell affinity
We so far allocate the doorbell interrupts without taking any
special measure regarding the affinity of these interrupts. We
simply move them around as required when the vcpu gets scheduled
on a different CPU.

But that's counting without userspace (and the evil irqbalance) that
can try and move the VPE interrupt around, causing the ITS code
to emit VMOVP commands and remap the doorbell to another redistributor.
Worse, this can happen while the vcpu is running, causing all kind
of trouble if the VPE is already resident, and we end-up in UNPRED
territory.

So let's take a definitive action and prevent userspace from messing
with us. This is just a matter of adding IRQ_NO_BALANCING to the
set of flags we already have, letting the kernel in sole control
of the affinity.

Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2017-11-10 09:45:02 +01:00
..
hyp KVM: arm/arm64: GICv4: Enable virtual cpuif if VLPIs can be delivered 2017-11-10 09:43:56 +01:00
vgic KVM: arm/arm64: GICv4: Prevent userspace from changing doorbell affinity 2017-11-10 09:45:02 +01:00
aarch32.c KVM: arm/arm64: Unify 32bit fault injection 2017-11-06 16:23:20 +01:00
arch_timer.c KVM: arm/arm64: vgic: restructure kvm_vgic_(un)map_phys_irq 2017-11-06 17:20:19 +01:00
arm.c KVM: arm/arm64: GICv4: Use the doorbell interrupt as an unblocking source 2017-11-10 09:43:22 +01:00
mmio.c KVM: arm/arm64: Move shared files to virt/kvm/arm 2017-05-04 13:57:26 +02:00
mmu.c KVM: arm/arm64: Fix guest external abort matching 2017-09-05 17:33:37 +02: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 KVM: arm/arm64: change exit request to sleep request 2017-06-04 16:53:55 +02:00
trace.h KVM: arm/arm64: Move shared files to virt/kvm/arm 2017-05-04 13:57:26 +02:00