projects
/
firefly-linux-kernel-4.4.55.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1bf20f0
)
intel-iommu: Don't free too much in dma_pte_free_pagetable()
author
David Woodhouse
<David.Woodhouse@intel.com>
Tue, 30 Jun 2009 02:38:09 +0000
(
03:38
+0100)
committer
David Woodhouse
<David.Woodhouse@intel.com>
Tue, 30 Jun 2009 02:57:38 +0000
(
03:57
+0100)
The loop condition was wrong -- we should free a PMD only if its
_entire_ range is within the range we're intending to clear. The
early-termination condition was right, but not the loop.
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 40ce5a03f18f296bb41e1a9db94899bb583e1e68..35bdd2a06caae03d69e4dbc8e6187c8f64f9953d 100644
(file)
--- a/
drivers/pci/intel-iommu.c
+++ b/
drivers/pci/intel-iommu.c
@@
-815,7
+815,7
@@
static void dma_pte_free_pagetable(struct dmar_domain *domain,
if (tmp + level_size(level) - 1 > last_pfn)
return;
- while (tmp <= last_pfn) {
+ while (tmp
+ level_size(level) - 1
<= last_pfn) {
pte = dma_pfn_level_pte(domain, tmp, level);
if (pte) {
free_pgtable_page(