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)
commit2a46ddf77c32da1f4137aeb902bc4e1f50582b69
tree4921c8e0a0f52f81ff0c45834b939aa5be9af5a6
parent44bde61428f7719c54a2074443edddf0e827296c
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