projects
/
platform
/
kernel
/
linux-arm64.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
75e6bf9
)
intel-iommu: Don't keep freeing page zero in dma_pte_free_pagetable()
author
David Woodhouse
<David.Woodhouse@intel.com>
Thu, 2 Jul 2009 11:02:34 +0000
(12:02 +0100)
committer
David Woodhouse
<David.Woodhouse@intel.com>
Thu, 2 Jul 2009 11:02:38 +0000
(12:02 +0100)
Check dma_pte_present() and only free the page if there _is_ one.
Kind of surprising that there was no warning about this.
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/pci/intel-iommu.c
patch
|
blob
|
history
diff --git
a/drivers/pci/intel-iommu.c
b/drivers/pci/intel-iommu.c
index
dcf0295
..
5307542
100644
(file)
--- a/
drivers/pci/intel-iommu.c
+++ b/
drivers/pci/intel-iommu.c
@@
-826,8
+826,10
@@
static void dma_pte_free_pagetable(struct dmar_domain *domain,
continue;
}
do {
- free_pgtable_page(phys_to_virt(dma_pte_addr(pte)));
- dma_clear_pte(pte);
+ if (dma_pte_present(pte)) {
+ free_pgtable_page(phys_to_virt(dma_pte_addr(pte)));
+ dma_clear_pte(pte);
+ }
pte++;
tmp += level_size(level);
} while (!first_pte_in_page(pte) &&