intel-iommu: Fix enabling snooping feature by mistake
authorSheng Yang <sheng@linux.intel.com>
Thu, 6 Aug 2009 05:31:56 +0000 (13:31 +0800)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 6 Aug 2009 10:35:50 +0000 (11:35 +0100)
commitc5b1525533c484238015c48c78f86d49a1bfb86b
tree631d4b89cc8c42de84230c09a997eef2e734203b
parent33041ec049d39a6e0463c7edc7b6f631d24559e3
intel-iommu: Fix enabling snooping feature by mistake

Two defects work together result in KVM device passthrough randomly can't
work:
1. iommu_snooping is not initialized to zero when vm_iommu_init() called.
So it is possible to get a random value.
2. One line added by commit 2c2e2c38("IOMMU Identity Mapping Support")
change the code path, let it bypass domain_update_iommu_cap(), as well as
missing the increment of domain iommu reference count.

The latter is also likely to cause a leak of domains on repeated VMM
assignment and deassignment.

Signed-off-by: Sheng Yang <sheng@linux.intel.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/pci/intel-iommu.c