]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sparc64: Fix address range for page table free Orabug: 25704426
authorNitin Gupta <nitin.m.gupta@oracle.com>
Fri, 24 Mar 2017 20:06:22 +0000 (13:06 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Mon, 24 Apr 2017 04:43:24 +0000 (21:43 -0700)
Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
Signed-off-by: Allen Pais <allen.pais@oracle.com>
arch/sparc/mm/hugetlbpage.c

index 90c25b5bc113c56463de542d3b5120f584010ee9..d56e58792227365c49a8df4fd380626c77bbd8af 100644 (file)
@@ -473,6 +473,22 @@ void hugetlb_free_pgd_range(struct mmu_gather *tlb,
        pgd_t *pgd;
        unsigned long next;
 
+       addr &= PMD_MASK;
+       if (addr < floor) {
+               addr += PMD_SIZE;
+               if (!addr)
+                       return;
+       }
+       if (ceiling) {
+               ceiling &= PMD_MASK;
+               if (!ceiling)
+                       return;
+       }
+       if (end - 1 > ceiling - 1)
+               end -= PMD_SIZE;
+       if (addr > end - 1)
+               return;
+
        pgd = pgd_offset(tlb->mm, addr);
        do {
                next = pgd_addr_end(addr, end);