]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs
authorMarc Zyngier <maz@kernel.org>
Tue, 5 Apr 2022 18:23:25 +0000 (19:23 +0100)
committerMarc Zyngier <maz@kernel.org>
Wed, 4 May 2022 13:09:53 +0000 (14:09 +0100)
commite09b1c9157d24e2527d6bc21079a7d471e4c87dd
tree19535d18cdd87541531d26d985f3bb558524b2ab
parenta67d4746dc23842a983391f9a964a8ecabd5857c
KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs

When disabling LPIs, a guest needs to poll GICR_CTLR.RWP in order
to be sure that the write has taken effect. We so far reported it
as 0, as we didn't advertise that LPIs could be turned off the
first place.

Start tracking this state during which LPIs are being disabled,
and expose the 'in progress' state via the RWP bit.

We also take this opportunity to disallow enabling LPIs and programming
GICR_{PEND,PROP}BASER while LPI disabling is in progress, as allowed by
the architecture (UNPRED behaviour).

We don't advertise the feature to the guest yet (which is allowed by
the architecture).

Reviewed-by: Oliver Upton <oupton@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220405182327.205520-3-maz@kernel.org
arch/arm64/kvm/vgic/vgic-its.c
arch/arm64/kvm/vgic/vgic-mmio-v3.c
arch/arm64/kvm/vgic/vgic.h
include/kvm/arm_vgic.h