From: Jan Kiszka Date: Tue, 2 Nov 2010 07:05:51 +0000 (+0100) Subject: intel-iommu: Fix use after release during device attach X-Git-Tag: v2.6.35.13~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=62e2d392a18f2a3149e31fecbe18a32a06587174;p=thirdparty%2Fkernel%2Fstable.git 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 Signed-off-by: Andi Kleen Reviewed-by: Sheng Yang Signed-off-by: David Woodhouse --- diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c index 83ac0a08f701f..46fcc591d5ed9 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--; }