intel-iommu: fix off-by-one in pagetable freeing
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / iommu / intel-iommu.c
index 43b9bfe..59779e1 100644 (file)
@@ -917,7 +917,7 @@ static void dma_pte_free_level(struct dmar_domain *domain, int level,
 
                /* If range covers entire pagetable, free it */
                if (!(start_pfn > level_pfn ||
-                     last_pfn < level_pfn + level_size(level))) {
+                     last_pfn < level_pfn + level_size(level) - 1)) {
                        dma_clear_pte(pte);
                        domain_flush_cache(domain, pte, sizeof(*pte));
                        free_pgtable_page(level_pte);