aboutsummaryrefslogtreecommitdiffstats
path: root/mm/hugetlb.c
diff options
context:
space:
mode:
authorNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>2013-09-11 17:22:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-11 18:57:48 -0400
commit74060e4d78795c7c43805133cb717d82533d4e0d (patch)
tree923febdc5b4565fbbcf05387d7cc423c72648695 /mm/hugetlb.c
parente632a938d914d271bec26e570d36c755a1e35e4c (diff)
mm: mbind: add hugepage migration code to mbind()
Extend do_mbind() to handle vma with VM_HUGETLB set. We will be able to migrate hugepage with mbind(2) after applying the enablement patch which comes later in this series. Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Acked-by: Andi Kleen <ak@linux.intel.com> Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com> Acked-by: Hillf Danton <dhillf@gmail.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Hugh Dickins <hughd@google.com> Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Cc: Michal Hocko <mhocko@suse.cz> Cc: Rik van Riel <riel@redhat.com> Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r--mm/hugetlb.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index e51723866fb1..d37b3b95c439 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1207,6 +1207,20 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma,
1207 return page; 1207 return page;
1208} 1208}
1209 1209
1210/*
1211 * alloc_huge_page()'s wrapper which simply returns the page if allocation
1212 * succeeds, otherwise NULL. This function is called from new_vma_page(),
1213 * where no ERR_VALUE is expected to be returned.
1214 */
1215struct page *alloc_huge_page_noerr(struct vm_area_struct *vma,
1216 unsigned long addr, int avoid_reserve)
1217{
1218 struct page *page = alloc_huge_page(vma, addr, avoid_reserve);
1219 if (IS_ERR(page))
1220 page = NULL;
1221 return page;
1222}
1223
1210int __weak alloc_bootmem_huge_page(struct hstate *h) 1224int __weak alloc_bootmem_huge_page(struct hstate *h)
1211{ 1225{
1212 struct huge_bootmem_page *m; 1226 struct huge_bootmem_page *m;