iommu/vt-d: Fix possible invalid memory access caused by free_dmar_iommu()
authorJiang Liu <jiang.liu@linux.intel.com>
Fri, 11 Jul 2014 06:19:30 +0000 (14:19 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 23 Jul 2014 14:04:47 +0000 (16:04 +0200)
commitbe6c10a07a591eed14772819df47b4c0e0d573b1
tree4921c8e0a0f52f81ff0c45834b939aa5be9af5a6
parent7b4dc710b493c397ae89174633eac7336d5254c7
iommu/vt-d: Fix possible invalid memory access caused by free_dmar_iommu()

Static identity and virtual machine domains may be cached in
iommu->domain_ids array after corresponding IOMMUs have been removed
from domain->iommu_bmp. So we should check domain->iommu_bmp before
decreasing domain->iommu_count in function free_dmar_iommu(), otherwise
it may cause free of inuse domain data structure.

Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel-iommu.c