aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory_hotplug.c
diff options
context:
space:
mode:
authorcodeworkx <codeworkx@cyanogenmod.com>2012-09-22 09:48:20 +0200
committercodeworkx <codeworkx@cyanogenmod.com>2012-09-22 14:02:16 +0200
commit2489007e7d740ccbc3e0a202914e243ad5178787 (patch)
treeb8e6380ea7b1da63474ad68a5dba997e01146043 /mm/memory_hotplug.c
parent5f67568eb31e3a813c7c52461dcf66ade15fc2e7 (diff)
downloadkernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.zip
kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.gz
kernel_samsung_smdk4412-2489007e7d740ccbc3e0a202914e243ad5178787.tar.bz2
merge opensource jb u5
Change-Id: I1aaec157aa196f3448eff8636134fce89a814cf2
Diffstat (limited to 'mm/memory_hotplug.c')
-rw-r--r--mm/memory_hotplug.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index c46887b..348d7bf 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -746,8 +746,13 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
goto out;
}
/* this function returns # of failed pages */
+#ifndef CONFIG_DMA_CMA
ret = migrate_pages(&source, hotremove_migrate_alloc, 0,
true, true);
+#else
+ ret = migrate_pages(&source, hotremove_migrate_alloc, 0,
+ true, true, 0);
+#endif
if (ret)
putback_lru_pages(&source);
}
@@ -829,7 +834,11 @@ static int __ref offline_pages(unsigned long start_pfn,
nr_pages = end_pfn - start_pfn;
/* set above range as isolated */
+#ifndef CONFIG_DMA_CMA
ret = start_isolate_page_range(start_pfn, end_pfn);
+#else
+ ret = start_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
+#endif
if (ret)
goto out;
@@ -894,7 +903,11 @@ repeat:
We cannot do rollback at this point. */
offline_isolated_pages(start_pfn, end_pfn);
/* reset pagetype flags and makes migrate type to be MOVABLE */
+#ifndef CONFIG_DMA_CMA
undo_isolate_page_range(start_pfn, end_pfn);
+#else
+ undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
+#endif
/* removal success */
zone->present_pages -= offlined_pages;
zone->zone_pgdat->node_present_pages -= offlined_pages;
@@ -919,7 +932,11 @@ failed_removal:
start_pfn, end_pfn);
memory_notify(MEM_CANCEL_OFFLINE, &arg);
/* pushback to free area */
+#ifndef CONFIG_DMA_CMA
undo_isolate_page_range(start_pfn, end_pfn);
+#else
+ undo_isolate_page_range(start_pfn, end_pfn, MIGRATE_MOVABLE);
+#endif
out:
unlock_memory_hotplug();