From b1b21521c654c2d267eded48510b61f479f7bc7e Mon Sep 17 00:00:00 2001 From: David Woodhouse Date: Mon, 29 Jun 2009 22:06:43 +0100 Subject: [PATCH] --- yaml --- r: 154787 b: refs/heads/master c: 1bf20f0dc5629032ddd07617139d9fbca66c1642 h: refs/heads/master i: 154785: 5231563b53b0f374f240454f71b2da594204ead6 154783: 3e86c75a96d1650f642969e0570eb4e251ffb8a5 v: v3 --- [refs] | 2 +- trunk/drivers/pci/intel-iommu.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 37c5fff8a841..92ed21bc8709 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9051aa0268dc1c3e42cd79a802b0af1f2bfcadae +refs/heads/master: 1bf20f0dc5629032ddd07617139d9fbca66c1642 diff --git a/trunk/drivers/pci/intel-iommu.c b/trunk/drivers/pci/intel-iommu.c index 14308533b1cb..40ce5a03f18f 100644 --- a/trunk/drivers/pci/intel-iommu.c +++ b/trunk/drivers/pci/intel-iommu.c @@ -1673,7 +1673,16 @@ static int __domain_mapping(struct dmar_domain *domain, unsigned long iov_pfn, /* We don't need lock here, nobody else * touches the iova range */ - BUG_ON(dma_pte_addr(pte)); + if (unlikely(dma_pte_addr(pte))) { + static int dumps = 5; + printk(KERN_CRIT "ERROR: DMA PTE for vPFN 0x%lx already set (to %llx)\n", + iov_pfn, pte->val); + if (dumps) { + dumps--; + debug_dma_dump_mappings(NULL); + } + WARN_ON(1); + } pte->val = pteval; pte++; if (!nr_pages ||