diff options
Diffstat (limited to 'mm/hugetlb.c')
| -rw-r--r-- | mm/hugetlb.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index df499973255f..7c7d03dbf73d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
| @@ -72,7 +72,7 @@ static struct page *dequeue_huge_page(struct vm_area_struct *vma, | |||
| 72 | struct zone **z; | 72 | struct zone **z; |
| 73 | 73 | ||
| 74 | for (z = zonelist->zones; *z; z++) { | 74 | for (z = zonelist->zones; *z; z++) { |
| 75 | nid = (*z)->zone_pgdat->node_id; | 75 | nid = zone_to_nid(*z); |
| 76 | if (cpuset_zone_allowed(*z, GFP_HIGHUSER) && | 76 | if (cpuset_zone_allowed(*z, GFP_HIGHUSER) && |
| 77 | !list_empty(&hugepage_freelists[nid])) | 77 | !list_empty(&hugepage_freelists[nid])) |
| 78 | break; | 78 | break; |
| @@ -177,7 +177,7 @@ static void update_and_free_page(struct page *page) | |||
| 177 | { | 177 | { |
| 178 | int i; | 178 | int i; |
| 179 | nr_huge_pages--; | 179 | nr_huge_pages--; |
| 180 | nr_huge_pages_node[page_zone(page)->zone_pgdat->node_id]--; | 180 | nr_huge_pages_node[page_to_nid(page)]--; |
| 181 | for (i = 0; i < (HPAGE_SIZE / PAGE_SIZE); i++) { | 181 | for (i = 0; i < (HPAGE_SIZE / PAGE_SIZE); i++) { |
| 182 | page[i].flags &= ~(1 << PG_locked | 1 << PG_error | 1 << PG_referenced | | 182 | page[i].flags &= ~(1 << PG_locked | 1 << PG_error | 1 << PG_referenced | |
| 183 | 1 << PG_dirty | 1 << PG_active | 1 << PG_reserved | | 183 | 1 << PG_dirty | 1 << PG_active | 1 << PG_reserved | |
| @@ -191,7 +191,8 @@ static void update_and_free_page(struct page *page) | |||
| 191 | #ifdef CONFIG_HIGHMEM | 191 | #ifdef CONFIG_HIGHMEM |
| 192 | static void try_to_free_low(unsigned long count) | 192 | static void try_to_free_low(unsigned long count) |
| 193 | { | 193 | { |
| 194 | int i, nid; | 194 | int i; |
| 195 | |||
| 195 | for (i = 0; i < MAX_NUMNODES; ++i) { | 196 | for (i = 0; i < MAX_NUMNODES; ++i) { |
| 196 | struct page *page, *next; | 197 | struct page *page, *next; |
| 197 | list_for_each_entry_safe(page, next, &hugepage_freelists[i], lru) { | 198 | list_for_each_entry_safe(page, next, &hugepage_freelists[i], lru) { |
| @@ -199,9 +200,8 @@ static void try_to_free_low(unsigned long count) | |||
| 199 | continue; | 200 | continue; |
| 200 | list_del(&page->lru); | 201 | list_del(&page->lru); |
| 201 | update_and_free_page(page); | 202 | update_and_free_page(page); |
| 202 | nid = page_zone(page)->zone_pgdat->node_id; | ||
| 203 | free_huge_pages--; | 203 | free_huge_pages--; |
| 204 | free_huge_pages_node[nid]--; | 204 | free_huge_pages_node[page_to_nid(page)]--; |
| 205 | if (count >= nr_huge_pages) | 205 | if (count >= nr_huge_pages) |
| 206 | return; | 206 | return; |
| 207 | } | 207 | } |
