aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory-failure.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r--mm/memory-failure.c9
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",