summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorOliver Upton <oliver.upton@linux.dev>2024-10-17 00:19:47 +0000
committerMarc Zyngier <maz@kernel.org>2024-10-17 09:20:48 +0100
commit78a00555550042ed77b33ace7423aced228b3b4e (patch)
tree8132862d90ddb1bd02c26923f610d15a38e88d90 /arch/x86
parent5978d4ec7e82ffc472ac2645601dd10b09e61b0f (diff)
KVM: arm64: Ensure vgic_ready() is ordered against MMIO registration
kvm_vgic_map_resources() prematurely marks the distributor as 'ready', potentially allowing vCPUs to enter the guest before the distributor's MMIO registration has been made visible. Plug the race by marking the distributor as ready only after MMIO registration is completed. Rely on the implied ordering of synchronize_srcu() to ensure the MMIO registration is visible before vgic_dist::ready. This also means that writers to vgic_dist::ready are now serialized by the slots_lock, which was effectively the case already as all writers held the slots_lock in addition to the config_lock. Fixes: 59112e9c390b ("KVM: arm64: vgic: Fix a circular locking issue") Signed-off-by: Oliver Upton <oliver.upton@linux.dev> Link: https://lore.kernel.org/r/20241017001947.2707312-3-oliver.upton@linux.dev Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'arch/x86')
0 files changed, 0 insertions, 0 deletions