diff options
author | Jody McIntyre <scjody@modernduck.com> | 2005-11-28 17:46:32 -0500 |
---|---|---|
committer | Jody McIntyre <scjody@modernduck.com> | 2005-11-28 17:46:32 -0500 |
commit | a880b11a95fab4618da412d99fc7365d723e702d (patch) | |
tree | 10839a82741b7154067adfff425dadef3caf4163 /mm/hugetlb.c | |
parent | 899a1fc084ef3dcb57737d8847bf219cbf353ed3 (diff) | |
parent | 458af5439fe7ae7d95ca14106844e61f0795166c (diff) |
Merge with http://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'mm/hugetlb.c')
-rw-r--r-- | mm/hugetlb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 728e9bda12e..3e52df7c471 100644 --- a/mm/hugetlb.c +++ b/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; } |