linux-uconsole/virt/kvm/arm
Zenghui Yu 66f8ca55eb KVM: arm/arm64: vgic: Don't rely on the wrong pending table
commit ca185b2609 upstream.

It's possible that two LPIs locate in the same "byte_offset" but target
two different vcpus, where their pending status are indicated by two
different pending tables.  In such a scenario, using last_byte_offset
optimization will lead KVM relying on the wrong pending table entry.
Let us use last_ptr instead, which can be treated as a byte index into
a pending table and also, can be vcpu specific.

Fixes: 280771252c ("KVM: arm64: vgic-v3: KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES")
Cc: stable@vger.kernel.org
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Acked-by: Eric Auger <eric.auger@redhat.com>
Link: https://lore.kernel.org/r/20191029071919.177-4-yuzenghui@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-13 08:52:45 +01:00
..
hyp KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation 2019-06-19 08:18:04 +02:00
vgic KVM: arm/arm64: vgic: Don't rely on the wrong pending table 2019-12-13 08:52:45 +01:00
aarch32.c KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation 2019-06-19 08:18:04 +02:00
arch_timer.c KVM: arm/arm64: Fix lost IRQs from emulated physcial timer when blocked 2018-07-31 07:53:20 +01:00
arm.c KVM: arm/arm64: Sync ICH_VMCR_EL2 back when about to block 2019-08-25 10:47:59 +02:00
mmio.c KVM: arm/arm64: Only skip MMIO insn once 2019-09-10 10:33:52 +01:00
mmu.c kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table 2019-11-24 08:19:31 +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: arm64: Rewrite system register accessors to read/write functions 2018-03-19 10:53:16 +00:00
psci.c arm/arm64: KVM: Allow a VCPU to fully reset itself 2019-03-23 20:09:43 +01:00
trace.h KVM: Remove obsolete kvm_unmap_hva notifier backend 2018-09-07 15:06:02 +02:00