The VMEMMAP_POPULATE_PAGEREF flag is only used to ensure that we call
get_page() when slab is available, as mentioned in the comment:
"and through vmemmap_populate_compound_pages() when slab is available".

Since we can check slab_is_available() directly, the flag and the
associated argument passing can be removed to simplify the code.

Signed-off-by: Muchun Song <[email protected]>
---
 mm/sparse-vmemmap.c | 40 ++++++++++++++--------------------------
 1 file changed, 14 insertions(+), 26 deletions(-)

diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
index 26cb55c12a83..3fdb6808e8ab 100644
--- a/mm/sparse-vmemmap.c
+++ b/mm/sparse-vmemmap.c
@@ -33,13 +33,6 @@
 #include <asm/tlbflush.h>
 
 #include "hugetlb_vmemmap.h"
-
-/*
- * Flags for vmemmap_populate_range and friends.
- */
-/* Get a ref on the head page struct page, for ZONE_DEVICE compound pages */
-#define VMEMMAP_POPULATE_PAGEREF       0x0001
-
 #include "internal.h"
 
 /*
@@ -152,8 +145,8 @@ void __meminit vmemmap_verify(pte_t *pte, int node,
 }
 
 static pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, 
int node,
-                                      struct vmem_altmap *altmap,
-                                      unsigned long ptpfn, unsigned long flags)
+                                             struct vmem_altmap *altmap,
+                                             unsigned long ptpfn)
 {
        pte_t *pte = pte_offset_kernel(pmd, addr);
        if (pte_none(ptep_get(pte))) {
@@ -175,7 +168,7 @@ static pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, 
unsigned long addr, in
                         * and through vmemmap_populate_compound_pages() when
                         * slab is available.
                         */
-                       if (flags & VMEMMAP_POPULATE_PAGEREF)
+                       if (slab_is_available())
                                get_page(pfn_to_page(ptpfn));
                }
                entry = pfn_pte(ptpfn, PAGE_KERNEL);
@@ -248,8 +241,7 @@ static pgd_t * __meminit vmemmap_pgd_populate(unsigned long 
addr, int node)
 
 static pte_t * __meminit vmemmap_populate_address(unsigned long addr, int node,
                                              struct vmem_altmap *altmap,
-                                             unsigned long ptpfn,
-                                             unsigned long flags)
+                                             unsigned long ptpfn)
 {
        pgd_t *pgd;
        p4d_t *p4d;
@@ -269,7 +261,7 @@ static pte_t * __meminit vmemmap_populate_address(unsigned 
long addr, int node,
        pmd = vmemmap_pmd_populate(pud, addr, node);
        if (!pmd)
                return NULL;
-       pte = vmemmap_pte_populate(pmd, addr, node, altmap, ptpfn, flags);
+       pte = vmemmap_pte_populate(pmd, addr, node, altmap, ptpfn);
        if (!pte)
                return NULL;
        vmemmap_verify(pte, node, addr, addr + PAGE_SIZE);
@@ -280,15 +272,14 @@ static pte_t * __meminit 
vmemmap_populate_address(unsigned long addr, int node,
 static int __meminit vmemmap_populate_range(unsigned long start,
                                            unsigned long end, int node,
                                            struct vmem_altmap *altmap,
-                                           unsigned long ptpfn,
-                                           unsigned long flags)
+                                           unsigned long ptpfn)
 {
        unsigned long addr = start;
        pte_t *pte;
 
        for (; addr < end; addr += PAGE_SIZE) {
                pte = vmemmap_populate_address(addr, node, altmap,
-                                              ptpfn, flags);
+                                              ptpfn);
                if (!pte)
                        return -ENOMEM;
        }
@@ -306,7 +297,7 @@ int __meminit vmemmap_populate_basepages(unsigned long 
start, unsigned long end,
 {
        if (vmemmap_can_optimize(altmap, pgmap))
                return vmemmap_populate_compound_pages(start, end, node, pgmap);
-       return vmemmap_populate_range(start, end, node, altmap, -1, 0);
+       return vmemmap_populate_range(start, end, node, altmap, -1);
 }
 
 /*
@@ -382,7 +373,7 @@ int __meminit vmemmap_populate_hvo(unsigned long addr, 
unsigned long end,
                return -ENOMEM;
 
        for (maddr = addr; maddr < addr + headsize; maddr += PAGE_SIZE) {
-               pte = vmemmap_populate_address(maddr, node, NULL, -1, 0);
+               pte = vmemmap_populate_address(maddr, node, NULL, -1);
                if (!pte)
                        return -ENOMEM;
        }
@@ -390,8 +381,7 @@ int __meminit vmemmap_populate_hvo(unsigned long addr, 
unsigned long end,
        /*
         * Reuse the last page struct page mapped above for the rest.
         */
-       return vmemmap_populate_range(maddr, end, node, NULL,
-                                     page_to_pfn(tail), 0);
+       return vmemmap_populate_range(maddr, end, node, NULL, 
page_to_pfn(tail));
 }
 #endif
 
@@ -518,8 +508,7 @@ static int __meminit 
vmemmap_populate_compound_pages(unsigned long start,
                 * with just tail struct pages.
                 */
                return vmemmap_populate_range(start, end, node, NULL,
-                                             pte_pfn(ptep_get(pte)),
-                                             VMEMMAP_POPULATE_PAGEREF);
+                                             pte_pfn(ptep_get(pte)));
        }
 
        size = min(end - start, pgmap_vmemmap_nr(pgmap) * sizeof(struct page));
@@ -527,13 +516,13 @@ static int __meminit 
vmemmap_populate_compound_pages(unsigned long start,
                unsigned long next, last = addr + size;
 
                /* Populate the head page vmemmap page */
-               pte = vmemmap_populate_address(addr, node, NULL, -1, 0);
+               pte = vmemmap_populate_address(addr, node, NULL, -1);
                if (!pte)
                        return -ENOMEM;
 
                /* Populate the tail pages vmemmap page */
                next = addr + PAGE_SIZE;
-               pte = vmemmap_populate_address(next, node, NULL, -1, 0);
+               pte = vmemmap_populate_address(next, node, NULL, -1);
                if (!pte)
                        return -ENOMEM;
 
@@ -543,8 +532,7 @@ static int __meminit 
vmemmap_populate_compound_pages(unsigned long start,
                 */
                next += PAGE_SIZE;
                rc = vmemmap_populate_range(next, last, node, NULL,
-                                           pte_pfn(ptep_get(pte)),
-                                           VMEMMAP_POPULATE_PAGEREF);
+                                           pte_pfn(ptep_get(pte)));
                if (rc)
                        return -ENOMEM;
        }
-- 
2.20.1


Reply via email to