OSDN Git Service

KVM: arm64: GICv4.1: Plumb SGI implementation selection in the distributor
authorMarc Zyngier <maz@kernel.org>
Wed, 4 Mar 2020 20:33:27 +0000 (20:33 +0000)
committerMarc Zyngier <maz@kernel.org>
Tue, 24 Mar 2020 12:15:51 +0000 (12:15 +0000)
commit2291ff2f2a569b7b7a64aff3d05e1d51fe0fd66a
treebc385917daa149636491ab6e79af965429af49df
parentbacf2c60548befa8a31c2f19ef65bf2177fda33f
KVM: arm64: GICv4.1: Plumb SGI implementation selection in the distributor

The GICv4.1 architecture gives the hypervisor the option to let
the guest choose whether it wants the good old SGIs with an
active state, or the new, HW-based ones that do not have one.

For this, plumb the configuration of SGIs into the GICv3 MMIO
handling, present the GICD_TYPER2.nASSGIcap to the guest,
and handle the GICD_CTLR.nASSGIreq setting.

In order to be able to deal with the restore of a guest, also
apply the GICD_CTLR.nASSGIreq setting at first run so that we
can move the restored SGIs to the HW if that's what the guest
had selected in a previous life.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20200304203330.4967-21-maz@kernel.org
virt/kvm/arm/vgic/vgic-mmio-v3.c
virt/kvm/arm/vgic/vgic-v3.c