From 00ec271582964b45c1792735297c345dc07ee584 Mon Sep 17 00:00:00 2001 From: Eric Paris Date: Mon, 21 Nov 2005 21:32:28 -0800 Subject: [PATCH] --- yaml --- r: 14619 b: refs/heads/master c: 0bd0f9fb190a0fc0fb25b764c8b04869711f7657 h: refs/heads/master i: 14617: 7b1ceb1f267b81ea0a7a3eb5593a02fbf55f2c9d 14615: 54a47b5baef0cf7a12c0634c1bbdaa9fb1917b83 v: v3 --- [refs] | 2 +- trunk/mm/hugetlb.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6c57e78de7ec..cf261d50dc89 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5ef897c71a8985b62b7ec320a37376daaad364d0 +refs/heads/master: 0bd0f9fb190a0fc0fb25b764c8b04869711f7657 diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index 728e9bda12ea..3e52df7c471b 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -22,6 +22,10 @@ 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]; + +/* + * Protects updates to hugepage_freelists, nr_huge_pages, and free_huge_pages + */ static DEFINE_SPINLOCK(hugetlb_lock); static void enqueue_huge_page(struct page *page) @@ -61,8 +65,10 @@ static struct page *alloc_fresh_huge_page(void) HUGETLB_PAGE_ORDER); nid = (nid + 1) % num_online_nodes(); if (page) { + spin_lock(&hugetlb_lock); nr_huge_pages++; nr_huge_pages_node[page_to_nid(page)]++; + spin_unlock(&hugetlb_lock); } return page; }