intel-iommu: iommu init error path bug fixes
authorDonald Dutile <ddutile@redhat.com>
Thu, 20 Aug 2009 20:51:34 +0000 (16:51 -0400)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Mon, 24 Aug 2009 07:56:26 +0000 (08:56 +0100)
commit94a91b5051a77d8a71d4f11a3240f0d9c51b6cf2
tree04d81ea79520cbd662024ee23cd3f834dd950ed0
parent071e13746f9ebb259987c71ea77f11e7656769a2
intel-iommu: iommu init error path bug fixes

The kcalloc() failure path in iommu_init_domains() calls
free_dmar_iommu(), which assumes that ->domains, ->domain_ids,
and ->lock have been properly initialized.

Add checks in free_[dmar]_iommu to not use ->domains,->domain_ids
if not alloced. Move the lock init to prior to the kcalloc()'s,
so it is valid in free_context_table() when free_dmar_iommu() invokes
it at the end.

Patch based on iommu-2.6,
commit 132032274a594ee9ffb6b9c9e2e9698149a09ea9

Signed-off-by: Donald Dutile <ddutile@redhat.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/pci/intel-iommu.c