From: Marc Zyngier Date: Wed, 22 May 2019 17:16:49 +0000 (+0100) Subject: KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on ITS disable X-Git-Tag: v5.4-rc1~138^2~20^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=363518f37a86acc515defae6d1ba91a6c7617de9;p=thirdparty%2Fkernel%2Fstable.git KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on ITS disable If an ITS gets disabled, we need to make sure that further interrupts won't hit in the cache. For that, we invalidate the translation cache when the ITS is disabled. Tested-by: Andre Przywara Reviewed-by: Eric Auger Signed-off-by: Marc Zyngier --- diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c index 09a1798208166..05406bd92ce90 100644 --- a/virt/kvm/arm/vgic/vgic-its.c +++ b/virt/kvm/arm/vgic/vgic-its.c @@ -1597,6 +1597,8 @@ static void vgic_mmio_write_its_ctlr(struct kvm *kvm, struct vgic_its *its, goto out; its->enabled = !!(val & GITS_CTLR_ENABLE); + if (!its->enabled) + vgic_its_invalidate_cache(kvm); /* * Try to process any pending commands. This function bails out early