summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2010-11-02 08:05:51 +0100
committerAndi Kleen <ak@linux.intel.com>2011-04-28 08:21:15 -0700
commit62e2d392a18f2a3149e31fecbe18a32a06587174 (patch)
treeebfe6ab02347ac7d4670cccfb279f763a192737b
parentf0aa357c5f66cc5befc35d5d438d323182cdeb2a (diff)
intel-iommu: Fix use after release during device attach
upstream commit 7a6610139a Obtain the new pgd pointer before releasing the page containing this value. Cc: stable@kernel.org Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Andi Kleen <ak@linux.intel.com> Reviewed-by: Sheng Yang <sheng@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
-rw-r--r--drivers/pci/intel-iommu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 83ac0a08f701..46fcc591d5ed 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -3638,9 +3638,9 @@ static int intel_iommu_attach_device(struct iommu_domain *domain,
pte = dmar_domain->pgd;
if (dma_pte_present(pte)) {
- free_pgtable_page(dmar_domain->pgd);
dmar_domain->pgd = (struct dma_pte *)
phys_to_virt(dma_pte_addr(pte));
+ free_pgtable_page(pte);
}
dmar_domain->agaw--;
}