X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=mm%2Fhugetlb.c;h=4eb5ae3fbe10d3f34aca918c3325c62f76bdd8ee;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=3e17acfb3ad16c50a9fe4694dce75b462b09888c;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 3e17acfb3..4eb5ae3fb 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -10,6 +10,7 @@ #include #include #include +#include const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL; static unsigned long nr_huge_pages, free_huge_pages; @@ -17,7 +18,7 @@ unsigned long max_huge_pages; static struct list_head hugepage_freelists[MAX_NUMNODES]; static unsigned int nr_huge_pages_node[MAX_NUMNODES]; static unsigned int free_huge_pages_node[MAX_NUMNODES]; -static spinlock_t hugetlb_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(hugetlb_lock); static void enqueue_huge_page(struct page *page) { @@ -54,10 +55,10 @@ static struct page *alloc_fresh_huge_page(void) struct page *page; page = alloc_pages_node(nid, GFP_HIGHUSER|__GFP_COMP|__GFP_NOWARN, HUGETLB_PAGE_ORDER); - nid = (nid + 1) % numnodes; + nid = (nid + 1) % num_online_nodes(); if (page) { nr_huge_pages++; - nr_huge_pages_node[page_zone(page)->zone_pgdat->node_id]++; + nr_huge_pages_node[page_to_nid(page)]++; } return page; }