diff options
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r-- | mm/memory-failure.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 740c4f5..b4d627d 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1307,7 +1307,11 @@ static int get_any_page(struct page *p, unsigned long pfn, int flags) /* Not a free page */ ret = 1; } +#ifndef CONFIG_DMA_CMA unset_migratetype_isolate(p); +#else + unset_migratetype_isolate(p, MIGRATE_MOVABLE); +#endif unlock_memory_hotplug(); return ret; } @@ -1463,8 +1467,13 @@ int soft_offline_page(struct page *page, int flags) inc_zone_page_state(page, NR_ISOLATED_ANON + page_is_file_cache(page)); list_add(&page->lru, &pagelist); +#ifndef CONFIG_DMA_CMA ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0, true); +#else + ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, + 0, true, 0); +#endif if (ret) { putback_lru_pages(&pagelist); pr_info("soft offline: %#lx: migration failed %d, type %lx\n", |