[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4CCEA761.90501@web.de>
Date: Mon, 01 Nov 2010 12:41:21 +0100
From: Jan Kiszka <jan.kiszka@....de>
To: Sheng Yang <sheng@...ux.intel.com>
CC: kvm <kvm@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Crash in intel_iommu_assign_device
Hi Sheng,
I'm not claiming to understand the details, but this looks like use
(dereference of pte via dma_pte_addr) after release (free_pgtable_page
of dmar_domain->pgd aka pte) to me:
static int intel_iommu_attach_device(struct iommu_domain *domain,
struct device *dev)
{
[...]
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));
}
At least it crashes here right on pte->val access. Swap both lines?
Jan
Download attachment "signature.asc" of type "application/pgp-signature" (260 bytes)
Powered by blists - more mailing lists