iommu/vt-d: release invalidation queue when destroying IOMMU unit
authorJiang Liu <jiang.liu@linux.intel.com>
Mon, 6 Jan 2014 06:18:23 +0000 (14:18 +0800)
committerJoerg Roedel <joro@8bytes.org>
Thu, 9 Jan 2014 11:43:43 +0000 (12:43 +0100)
Release associated invalidation queue when destroying IOMMU unit
to avoid memory leak.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
drivers/iommu/dmar.c

index b0df78f..726cfe2 100644 (file)
@@ -737,6 +737,12 @@ static void free_iommu(struct intel_iommu *iommu)
                destroy_irq(iommu->irq);
        }
 
+       if (iommu->qi) {
+               free_page((unsigned long)iommu->qi->desc);
+               kfree(iommu->qi->desc_status);
+               kfree(iommu->qi);
+       }
+
        if (iommu->reg)
                unmap_iommu(iommu);