KVM: arm64: vgic-v3: Align emulated cpuif LPI state machine with the pseudocode
authorMarc Zyngier <maz@kernel.org>
Sun, 10 Oct 2021 15:09:10 +0000 (16:09 +0100)
committerMarc Zyngier <maz@kernel.org>
Sun, 17 Oct 2021 10:06:36 +0000 (11:06 +0100)
commit9d449c71bd8f74282e84213c8f0b8328293ab0a7
treedbdd9102002376f863725ac55fd94cd14d3d43ca
parentf87ab682722299cddf8cf5f7bc17053d70300ee0
KVM: arm64: vgic-v3: Align emulated cpuif LPI state machine with the pseudocode

Having realised that a virtual LPI does transition through an active
state that does not exist on bare metal, align the CPU interface
emulation with the behaviour specified in the architecture pseudocode.

The LPIs now transition to active on IAR read, and to inactive on
EOI write. Special care is taken not to increment the EOIcount for
an LPI that isn't present in the LRs.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211010150910.2911495-6-maz@kernel.org
arch/arm64/kvm/hyp/vgic-v3-sr.c