irqchip/gic-v3-its: Synchronise INT/CLEAR commands targetting a VLPI using VSYNC
authorMarc Zyngier <maz@kernel.org>
Fri, 8 Nov 2019 16:58:03 +0000 (16:58 +0000)
committerMarc Zyngier <maz@kernel.org>
Sun, 10 Nov 2019 18:47:53 +0000 (18:47 +0000)
commited0e4aa9cc74c08a429f4a389483c1076da2ca51
treeda4b88f87919fadddffc30883bb6b563a3ff946e
parent286146960a110cdae455a18cef47d5113d9a95c6
irqchip/gic-v3-its: Synchronise INT/CLEAR commands targetting a VLPI using VSYNC

We have so far always injected/cleared VLPIs using either
INT+SYNC or CLEAR+SYNC sequences, but that's pretty wrong
for two reasons:

- SYNC only synchronises physical LPIs
- The collection ID that for the associated LPI doesn't match
  the redistributor the vPE is associated with

Instead, send an {INT,CLEAR}+VSYNC for forwarded LPIs, ensuring
that the ITS synchronises against the virtual pending table.

Reported-by: Zenghui Yu <yuzenghui@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20191108165805.3071-10-maz@kernel.org
drivers/irqchip/irq-gic-v3-its.c