test_page_isolated() checks stability of pages. It checks two conditions, one is that the page is on isolate migratetype and the other is that the page is on the buddy and the isolate freelist. With satisfying these two conditions, we can determine that the page is stable and then go forward. __test_page_isolated_in_pageblock() is one of the main functions for this test. In that function, if it meets the page with page_count 0 and isolate migratetype, it decides that this page is stable. But this is not true, because there is possiblity that this kind of page is on the pcp and then it can be allocated by other users even though we hold the zone lock. So removing this check. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> diff --git a/mm/page_isolation.c b/mm/page_isolation.c index d1473b2..534fb3a 100644 --- a/mm/page_isolation.c +++ b/mm/page_isolation.c @@ -199,9 +199,6 @@ __test_page_isolated_in_pageblock(unsigned long pfn, unsigned long end_pfn, } pfn += 1 << page_order(page); } - else if (page_count(page) == 0 && - get_freepage_migratetype(page) == MIGRATE_ISOLATE) - pfn += 1; else if (skip_hwpoisoned_pages && PageHWPoison(page)) { /* * The HWPoisoned page may be not in buddy -- 1.7.9.5 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>