mm, migrate: remove reason argument from new_page_t
authorMichal Hocko <mhocko@suse.com>
Tue, 10 Apr 2018 23:30:03 +0000 (16:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 11 Apr 2018 17:28:32 +0000 (10:28 -0700)
No allocation callback is using this argument anymore.  new_page_node
used to use this parameter to convey node_id resp.  migration error up
to move_pages code (do_move_page_to_node_array).  The error status never
made it into the final status field and we have a better way to
communicate node id to the status field now.  All other allocation
callbacks simply ignored the argument so we can drop it finally.

[mhocko@suse.com: fix migration callback]
Link: http://lkml.kernel.org/r/20180105085259.GH2801@dhcp22.suse.cz
[akpm@linux-foundation.org: fix alloc_misplaced_dst_page()]
[mhocko@kernel.org: fix build]
Link: http://lkml.kernel.org/r/20180103091134.GB11319@dhcp22.suse.cz
Link: http://lkml.kernel.org/r/20180103082555.14592-3-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Zi Yan <zi.yan@cs.rutgers.edu>
Cc: Andrea Reale <ar@linux.vnet.ibm.com>
Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/powerpc/mm/mmu_context_iommu.c
include/linux/migrate.h
include/linux/page-isolation.h
mm/compaction.c
mm/internal.h
mm/memory-failure.c
mm/memory_hotplug.c
mm/mempolicy.c
mm/migrate.c
mm/page_isolation.c

index 9a8a084e4abac15355841189bd4d60efd3af03c3..4c615fcb0cf073bbdc8f746c0e54abdd1082e142 100644 (file)
@@ -75,8 +75,7 @@ EXPORT_SYMBOL_GPL(mm_iommu_preregistered);
 /*
  * Taken from alloc_migrate_target with changes to remove CMA allocations
  */
-struct page *new_iommu_non_cma_page(struct page *page, unsigned long private,
-                                       int **resultp)
+struct page *new_iommu_non_cma_page(struct page *page, unsigned long private)
 {
        gfp_t gfp_mask = GFP_USER;
        struct page *new_page;
index ab45f8a0d288ab03665e2d88a075c0479c76318d..e0393240bf64fcec987700fe9ea164e30bb45f96 100644 (file)
@@ -7,8 +7,7 @@
 #include <linux/migrate_mode.h>
 #include <linux/hugetlb.h>
 
-typedef struct page *new_page_t(struct page *page, unsigned long private,
-                               int **reason);
+typedef struct page *new_page_t(struct page *page, unsigned long private);
 typedef void free_page_t(struct page *page, unsigned long private);
 
 /*
index cdad58bbfd8bffc2ccb0ecc42e29b10459a4e9d7..4ae347cbc36d16fcaed260ee9f39ad63259c7ed7 100644 (file)
@@ -63,7 +63,6 @@ undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
 int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
                        bool skip_hwpoisoned_pages);
 
-struct page *alloc_migrate_target(struct page *page, unsigned long private,
-                               int **resultp);
+struct page *alloc_migrate_target(struct page *page, unsigned long private);
 
 #endif
index 88d01a50a0151ec80112f81348ea3115d8ad57ab..29bd1df18b98aff1d4a2a59c9253d5734c32bb20 100644 (file)
@@ -1166,8 +1166,7 @@ static void isolate_freepages(struct compact_control *cc)
  * from the isolated freelists in the block we are migrating to.
  */
 static struct page *compaction_alloc(struct page *migratepage,
-                                       unsigned long data,
-                                       int **result)
+                                       unsigned long data)
 {
        struct compact_control *cc = (struct compact_control *)data;
        struct page *freepage;
index 1a1bb5d59c154bbb441936a7324f7ca4e778a779..502d141897945dcfc41d346faf5b44daddc49878 100644 (file)
@@ -538,5 +538,5 @@ static inline bool is_migrate_highatomic_page(struct page *page)
 }
 
 void setup_zone_pageset(struct zone *zone);
-extern struct page *alloc_new_node_page(struct page *page, unsigned long node, int **x);
+extern struct page *alloc_new_node_page(struct page *page, unsigned long node);
 #endif /* __MM_INTERNAL_H */
index 2d4bf647cf013b2c5113192f43dc405ce4e13aa4..9d142b9b86dcd970d46a2b8124f065bd5eb29391 100644 (file)
@@ -1487,7 +1487,7 @@ int unpoison_memory(unsigned long pfn)
 }
 EXPORT_SYMBOL(unpoison_memory);
 
-static struct page *new_page(struct page *p, unsigned long private, int **x)
+static struct page *new_page(struct page *p, unsigned long private)
 {
        int nid = page_to_nid(p);
 
index cc6dfa5832ca6d03a6d43a05efb1b31400c00fe5..ec028494519c3b6b3e25f4f37f8c48e95f2710b6 100644 (file)
@@ -1329,8 +1329,7 @@ static unsigned long scan_movable_pages(unsigned long start, unsigned long end)
        return 0;
 }
 
-static struct page *new_node_page(struct page *page, unsigned long private,
-               int **result)
+static struct page *new_node_page(struct page *page, unsigned long private)
 {
        int nid = page_to_nid(page);
        nodemask_t nmask = node_states[N_MEMORY];
index 947e73feea41ec3d6b0a70a785929adcb457260b..e94bd70840debb701a42f956615a1a003f406143 100644 (file)
@@ -943,7 +943,7 @@ static void migrate_page_add(struct page *page, struct list_head *pagelist,
 }
 
 /* page allocation callback for NUMA node migration */
-struct page *alloc_new_node_page(struct page *page, unsigned long node, int **x)
+struct page *alloc_new_node_page(struct page *page, unsigned long node)
 {
        if (PageHuge(page))
                return alloc_huge_page_node(page_hstate(compound_head(page)),
@@ -1108,7 +1108,7 @@ int do_migrate_pages(struct mm_struct *mm, const nodemask_t *from,
  * list of pages handed to migrate_pages()--which is how we get here--
  * is in virtual address order.
  */
-static struct page *new_page(struct page *page, unsigned long start, int **x)
+static struct page *new_page(struct page *page, unsigned long start)
 {
        struct vm_area_struct *vma;
        unsigned long uninitialized_var(address);
@@ -1153,7 +1153,7 @@ int do_migrate_pages(struct mm_struct *mm, const nodemask_t *from,
        return -ENOSYS;
 }
 
-static struct page *new_page(struct page *page, unsigned long start, int **x)
+static struct page *new_page(struct page *page, unsigned long start)
 {
        return NULL;
 }
index 6068d4049a316536e376c0ba7d053595518a6814..c606752f6d2a38a95484fb9f361dfde18e81d6a3 100644 (file)
@@ -1137,10 +1137,9 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
                                   enum migrate_reason reason)
 {
        int rc = MIGRATEPAGE_SUCCESS;
-       int *result = NULL;
        struct page *newpage;
 
-       newpage = get_new_page(page, private, &result);
+       newpage = get_new_page(page, private);
        if (!newpage)
                return -ENOMEM;
 
@@ -1231,12 +1230,6 @@ put_new:
                        put_page(newpage);
        }
 
-       if (result) {
-               if (rc)
-                       *result = rc;
-               else
-                       *result = page_to_nid(newpage);
-       }
        return rc;
 }
 
@@ -1264,7 +1257,6 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
                                enum migrate_mode mode, int reason)
 {
        int rc = -EAGAIN;
-       int *result = NULL;
        int page_was_mapped = 0;
        struct page *new_hpage;
        struct anon_vma *anon_vma = NULL;
@@ -1281,7 +1273,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
                return -ENOSYS;
        }
 
-       new_hpage = get_new_page(hpage, private, &result);
+       new_hpage = get_new_page(hpage, private);
        if (!new_hpage)
                return -ENOMEM;
 
@@ -1345,12 +1337,6 @@ out:
        else
                putback_active_hugepage(new_hpage);
 
-       if (result) {
-               if (rc)
-                       *result = rc;
-               else
-                       *result = page_to_nid(new_hpage);
-       }
        return rc;
 }
 
@@ -1828,8 +1814,7 @@ static bool migrate_balanced_pgdat(struct pglist_data *pgdat,
 }
 
 static struct page *alloc_misplaced_dst_page(struct page *page,
-                                          unsigned long data,
-                                          int **result)
+                                          unsigned long data)
 {
        int nid = (int) data;
        struct page *newpage;
index 61dee77bb211ea6ee18508f270f5ea07405e0d99..43e0856088467551ae6bb71090d89469ebe3fb8d 100644 (file)
@@ -309,8 +309,7 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
        return pfn < end_pfn ? -EBUSY : 0;
 }
 
-struct page *alloc_migrate_target(struct page *page, unsigned long private,
-                                 int **resultp)
+struct page *alloc_migrate_target(struct page *page, unsigned long private)
 {
        return new_page_nodemask(page, numa_node_id(), &node_states[N_MEMORY]);
 }