When restore GIC/ITS, GICR_CTLR must be restored after GICR_PROPBASER and GICR_PENDBASER. That is important, as both of GICR_PROPBASER and GICR_PENDBASER will fail to be loaded when lpi has enabled yet in GICR_CTLR. Keep the restore order above will avoid that issue. Shout it out at the doc is very helpful that may avoid lots of debug work. Signed-off-by: Jianyong Wu <jianyong.wu@xxxxxxx> --- Documentation/virt/kvm/devices/arm-vgic-its.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Documentation/virt/kvm/devices/arm-vgic-its.rst b/Documentation/virt/kvm/devices/arm-vgic-its.rst index d257eddbae29..6b36de6937f8 100644 --- a/Documentation/virt/kvm/devices/arm-vgic-its.rst +++ b/Documentation/virt/kvm/devices/arm-vgic-its.rst @@ -126,7 +126,8 @@ ITS Restore Sequence: The following ordering must be followed when restoring the GIC and the ITS: a) restore all guest memory and create vcpus -b) restore all redistributors +b) restore all redistributors: + make sure restore GICR_CTLR after GICR_PROPBASER and GICR_PENDBASER c) provide the ITS base address (KVM_DEV_ARM_VGIC_GRP_ADDR) d) restore the ITS in the following order: -- 2.17.1