linux/virt/kvm/arm/vgic
Marc Zyngier 1f03b2bcd0 KVM: Disable preemption in kvm_get_running_vcpu()
Accessing a per-cpu variable only makes sense when preemption is
disabled (and the kernel does check this when the right debug options
are switched on).

For kvm_get_running_vcpu(), it is fine to return the value after
re-enabling preemption, as the preempt notifiers will make sure that
this is kept consistent across task migration (the comment above the
function hints at it, but lacks the crucial preemption management).

While we're at it, move the comment from the ARM code, which explains
why the whole thing works.

Fixes: 7495e22bb1 ("KVM: Move running VCPU from ARM to common code").
Cc: Paolo Bonzini <pbonzini@redhat.com>
Reported-by: Zenghui Yu <yuzenghui@huawei.com>
Tested-by: Zenghui Yu <yuzenghui@huawei.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/318984f6-bc36-33a3-abc6-bf2295974b06@huawei.com
Message-id: <20200207163410.31276-1-maz@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-02-12 12:19:35 +01:00
..
trace.h KVM: arm/arm64: vgic: Use the appropriate TRACE_INCLUDE_PATH 2019-09-11 16:36:19 +01:00
vgic-debug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 2019-06-19 17:09:07 +02:00
vgic-init.c KVM: arm/arm64: vgic: Use wrapper function to lock/unlock all vcpus in kvm_vgic_create() 2019-12-06 11:41:38 +00:00
vgic-irqfd.c KVM: arm/arm64: vgic-irqfd: Implement kvm_arch_set_irq_inatomic 2019-08-18 18:38:54 +01:00
vgic-its.c KVM: arm/arm64: vgic-its: Properly check the unmapped coll in DISCARD handler 2020-01-19 18:06:20 +00:00
vgic-kvm-device.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
vgic-mmio-v2.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
vgic-mmio-v3.c KVM: arm/arm64: vgic: Handle GICR_PENDBASER.PTZ filed as RAZ 2020-01-19 16:05:11 +00:00
vgic-mmio.c KVM: Disable preemption in kvm_get_running_vcpu() 2020-02-12 12:19:35 +01:00
vgic-mmio.h KVM: arm/arm64: vgic: Drop the kvm_vgic_register_mmio_region() 2020-01-19 18:06:24 +00:00
vgic-v2.c * s390: ioctl hardening, selftests 2019-09-18 09:49:13 -07:00
vgic-v3.c KVM: arm/arm64: vgic: Don't rely on the wrong pending table 2019-10-29 13:47:39 +00:00
vgic-v4.c KVM: vgic-v4: Track the number of VLPIs per vcpu 2019-11-08 11:13:24 +00:00
vgic.c KVM: arm64: vgic-v4: Move the GICv4 residency flow to be driven by vcpu_load/put 2019-10-28 16:20:58 +00:00
vgic.h KVM: arm64: vgic-v4: Move the GICv4 residency flow to be driven by vcpu_load/put 2019-10-28 16:20:58 +00:00