From af67d0964478de223e9423432fdd24535b734ac8 Mon Sep 17 00:00:00 2001 From: Gerald Schaefer Date: Tue, 12 Aug 2008 15:08:38 -0700 Subject: [PATCH] --- yaml --- r: 108238 b: refs/heads/master c: caff3a2c333e11a794308bd9a875a09b94fee24a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/hugetlb.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d0cdcccd13b3..05337943493b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 02eb7eeb8990b9cbd32c7bc1ef2d431ca390e44a +refs/heads/master: caff3a2c333e11a794308bd9a875a09b94fee24a diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index 757ca983fd99..92155db888b9 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -565,7 +565,7 @@ static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid) huge_page_order(h)); if (page) { if (arch_prepare_hugepage(page)) { - __free_pages(page, HUGETLB_PAGE_ORDER); + __free_pages(page, huge_page_order(h)); return NULL; } prep_new_huge_page(h, page, nid); @@ -665,6 +665,11 @@ static struct page *alloc_buddy_huge_page(struct hstate *h, __GFP_REPEAT|__GFP_NOWARN, huge_page_order(h)); + if (page && arch_prepare_hugepage(page)) { + __free_pages(page, huge_page_order(h)); + return NULL; + } + spin_lock(&hugetlb_lock); if (page) { /*