diff --git a/mm/memory-failure.c b/mm/memory-failure.c index c69217c07faa..784a1e17c905 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1429,7 +1429,8 @@ static int __get_any_page(struct page *p, unsigned long pfn, int flags) * was free. This flag should be kept set until the source page * is freed and PG_hwpoison on it is set. */ - set_migratetype_isolate(p, true); + if (get_pageblock_migratetype(p) != MIGRATE_ISOLATE) + set_migratetype_isolate(p, true); /* * When the target page is a free hugepage, just remove it * from free hugepage list.