X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Fhugetlb.c;h=92155db888b97f99aac1b29f804544ab0a2cf022;hb=caff3a2c333e11a794308bd9a875a09b94fee24a;hp=757ca983fd99cba4b73c563da5c0bb34c1ee396d;hpb=02eb7eeb8990b9cbd32c7bc1ef2d431ca390e44a;p=linux-2.6 diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 757ca983fd..92155db888 100644 --- a/mm/hugetlb.c +++ b/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) { /*