From: Jiang Liu Date: Mon, 6 Jan 2014 06:18:23 +0000 (+0800) Subject: iommu/vt-d: release invalidation queue when destroying IOMMU unit X-Git-Tag: next-20140116~40^2^3~4 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=a84da70b7ba0c5236fccf25115acefc235ed65f9;p=karo-tx-linux.git iommu/vt-d: release invalidation queue when destroying IOMMU unit Release associated invalidation queue when destroying IOMMU unit to avoid memory leak. Signed-off-by: Jiang Liu Signed-off-by: Joerg Roedel --- diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c index b0df78f9cd28..726cfe296d99 100644 --- a/drivers/iommu/dmar.c +++ b/drivers/iommu/dmar.c @@ -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);