aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorMichal Nazarewicz <mina86@mina86.com>2012-01-30 13:23:47 +0100
committerZiyan <jaraidaniel@gmail.com>2016-04-03 14:56:01 +0200
commit92011cf10bc2a4ba6338743390f1faa62b60759f (patch)
tree402bf19bd527eb02d88abbac873f25915ee3c3cf /mm
parent201ce136cd3720ad5b0a17aaa6ef80024d20d4d2 (diff)
downloadkernel_samsung_tuna-92011cf10bc2a4ba6338743390f1faa62b60759f.tar.gz
kernel_samsung_tuna-92011cf10bc2a4ba6338743390f1faa62b60759f.tar.bz2
kernel_samsung_tuna-92011cf10bc2a4ba6338743390f1faa62b60759f.zip
mm: compaction: introduce map_pages()
This commit creates a map_pages() function which map pages freed using split_free_pages(). This merely moves some code from isolate_freepages() so that it can be reused in other places. Signed-off-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Mel Gorman <mel@csn.ul.ie> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Tested-by: Robert Nelson <robertcnelson@gmail.com> Tested-by: Barry Song <Baohua.Song@csr.com>
Diffstat (limited to 'mm')
-rw-r--r--mm/compaction.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/mm/compaction.c b/mm/compaction.c
index 0173984beec..2bdbd4c8187 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -127,6 +127,16 @@ static bool suitable_migration_target(struct page *page)
return false;
}
+static void map_pages(struct list_head *list)
+{
+ struct page *page;
+
+ list_for_each_entry(page, list, lru) {
+ arch_alloc_page(page, 0);
+ kernel_map_pages(page, 1, 1);
+ }
+}
+
/*
* Based on information in the current compact_control, find blocks
* suitable for isolating free pages from and then isolate them.
@@ -206,10 +216,7 @@ static void isolate_freepages(struct zone *zone,
}
/* split_free_page does not map the pages */
- list_for_each_entry(page, freelist, lru) {
- arch_alloc_page(page, 0);
- kernel_map_pages(page, 1, 1);
- }
+ map_pages(freelist);
cc->free_pfn = high_pfn;
cc->nr_freepages = nr_freepages;