summaryrefslogtreecommitdiff
path: root/include/kvm
diff options
context:
space:
mode:
authorFuad Tabba <fuad.tabba@linux.dev>2026-10-13 09:16:46 +0100
committerMarc Zyngier <maz@kernel.org>2026-10-17 09:52:22 +0100
commite99ff76f4a02be8542e2c3ecc8843d7339a0200d (patch)
treebbe4d193fb09c403b2c9140b436490cdce7c7545 /include/kvm
parentde81b28f0b83b22163d7d9a9b708d7aa912e0ef7 (diff)
KVM: arm64: vgic-its: Remove the pending state of a discarded LPI
DISCARD removes the mapping of an event and instructs the Redistributor to remove the pending state of its LPI (IHI 0069H.b, 5.3.4). KVM only frees the ITE, so an LPI that is pending when the guest discards it stays queued on its target vCPU, and the guest still takes it. Clear the pending state before freeing the ITE. A queued LPI can be pending in a running vCPU's list register, so halt the guest first when the LPI is queued, to fold that state back. A forwarded LPI already loses its pending state in its_free_ite(), whose unmap from the vPE sends a DISCARD to the host ITS. [maz: folded-in rework to only pause the involved vcpus] Fixes: df9f58fbea9bc ("KVM: arm64: vgic-its: Implement ITS command queue command handlers") Suggested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev> Reviewed-by: Oliver Upton <oupton@kernel.org> Link: https://patch.msgid.link/20261013081646.933312-3-fuad.tabba@linux.dev Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'include/kvm')
0 files changed, 0 insertions, 0 deletions