mm: remove BUG_ON() in __isolate_free_page()
authorKefeng Wang <wangkefeng.wang@huawei.com>
Thu, 1 Sep 2022 01:50:43 +0000 (09:50 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 Sep 2022 03:26:11 +0000 (20:26 -0700)
Drop unneed comment and blank, adjust the variable, and the most important
is to delete BUG_ON().  The page passed is always buddy page into
__isolate_free_page() from compaction, page_isolation and page_reporting,
and the caller also check the return, BUG_ON() is a too drastic measure,
remove it.

Link: https://lkml.kernel.org/r/20220901015043.189276-1-wangkefeng.wang@huawei.com
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/page_alloc.c

index ce3315e..9d49803 100644 (file)
@@ -3600,16 +3600,11 @@ EXPORT_SYMBOL_GPL(split_page);
 
 int __isolate_free_page(struct page *page, unsigned int order)
 {
-       unsigned long watermark;
-       struct zone *zone;
-       int mt;
-
-       BUG_ON(!PageBuddy(page));
-
-       zone = page_zone(page);
-       mt = get_pageblock_migratetype(page);
+       struct zone *zone = page_zone(page);
+       int mt = get_pageblock_migratetype(page);
 
        if (!is_migrate_isolate(mt)) {
+               unsigned long watermark;
                /*
                 * Obey watermarks as if the page was being allocated. We can
                 * emulate a high-order watermark check with a raised order-0
@@ -3623,8 +3618,6 @@ int __isolate_free_page(struct page *page, unsigned int order)
                __mod_zone_freepage_state(zone, -(1UL << order), mt);
        }
 
-       /* Remove page from free list */
-
        del_page_from_free_list(page, zone, order);
 
        /*
@@ -3645,7 +3638,6 @@ int __isolate_free_page(struct page *page, unsigned int order)
                }
        }
 
-
        return 1UL << order;
 }