WIP: update tizen_qemu_defconfig
[platform/kernel/linux-starfive.git] / mm / compaction.c
index 1f6da31..8238e83 100644 (file)
@@ -1344,7 +1344,7 @@ move_freelist_tail(struct list_head *freelist, struct page *freepage)
 }
 
 static void
-fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long nr_isolated)
+fast_isolate_around(struct compact_control *cc, unsigned long pfn)
 {
        unsigned long start_pfn, end_pfn;
        struct page *page;
@@ -1365,21 +1365,13 @@ fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long
        if (!page)
                return;
 
-       /* Scan before */
-       if (start_pfn != pfn) {
-               isolate_freepages_block(cc, &start_pfn, pfn, &cc->freepages, 1, false);
-               if (cc->nr_freepages >= cc->nr_migratepages)
-                       return;
-       }
-
-       /* Scan after */
-       start_pfn = pfn + nr_isolated;
-       if (start_pfn < end_pfn)
-               isolate_freepages_block(cc, &start_pfn, end_pfn, &cc->freepages, 1, false);
+       isolate_freepages_block(cc, &start_pfn, end_pfn, &cc->freepages, 1, false);
 
        /* Skip this pageblock in the future as it's full or nearly full */
        if (cc->nr_freepages < cc->nr_migratepages)
                set_pageblock_skip(page);
+
+       return;
 }
 
 /* Search orders in round-robin fashion */
@@ -1556,7 +1548,7 @@ fast_isolate_freepages(struct compact_control *cc)
                return cc->free_pfn;
 
        low_pfn = page_to_pfn(page);
-       fast_isolate_around(cc, low_pfn, nr_isolated);
+       fast_isolate_around(cc, low_pfn);
        return low_pfn;
 }
 
@@ -1847,6 +1839,7 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc)
                                        pfn = cc->zone->zone_start_pfn;
                                cc->fast_search_fail = 0;
                                found_block = true;
+                               set_pageblock_skip(freepage);
                                break;
                        }
                }