KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on vgic teardown
authorMarc Zyngier <maz@kernel.org>
Mon, 10 Jun 2019 09:20:02 +0000 (10:20 +0100)
committerMarc Zyngier <maz@kernel.org>
Sun, 18 Aug 2019 17:38:51 +0000 (18:38 +0100)
In order to avoid leaking vgic_irq structures on teardown, we need to
drop all references to LPIs before deallocating the cache itself.

This is done by invalidating the cache on vgic teardown.

Tested-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
virt/kvm/arm/vgic/vgic-its.c

index 05406bd..d3e90a9 100644 (file)
@@ -1731,6 +1731,8 @@ void vgic_lpi_translation_cache_destroy(struct kvm *kvm)
        struct vgic_dist *dist = &kvm->arch.vgic;
        struct vgic_translation_cache_entry *cte, *tmp;
 
+       vgic_its_invalidate_cache(kvm);
+
        list_for_each_entry_safe(cte, tmp,
                                 &dist->lpi_translation_cache, entry) {
                list_del(&cte->entry);