diff options
| -rw-r--r-- | mm/percpu-vm.c | 7 | ||||
| -rw-r--r-- | mm/percpu.c | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/mm/percpu-vm.c b/mm/percpu-vm.c index 538998a137d2..9ac639499bd1 100644 --- a/mm/percpu-vm.c +++ b/mm/percpu-vm.c | |||
| @@ -21,7 +21,6 @@ static struct page *pcpu_chunk_page(struct pcpu_chunk *chunk, | |||
| 21 | 21 | ||
| 22 | /** | 22 | /** |
| 23 | * pcpu_get_pages - get temp pages array | 23 | * pcpu_get_pages - get temp pages array |
| 24 | * @chunk: chunk of interest | ||
| 25 | * | 24 | * |
| 26 | * Returns pointer to array of pointers to struct page which can be indexed | 25 | * Returns pointer to array of pointers to struct page which can be indexed |
| 27 | * with pcpu_page_idx(). Note that there is only one array and accesses | 26 | * with pcpu_page_idx(). Note that there is only one array and accesses |
| @@ -30,7 +29,7 @@ static struct page *pcpu_chunk_page(struct pcpu_chunk *chunk, | |||
| 30 | * RETURNS: | 29 | * RETURNS: |
| 31 | * Pointer to temp pages array on success. | 30 | * Pointer to temp pages array on success. |
| 32 | */ | 31 | */ |
| 33 | static struct page **pcpu_get_pages(struct pcpu_chunk *chunk_alloc) | 32 | static struct page **pcpu_get_pages(void) |
| 34 | { | 33 | { |
| 35 | static struct page **pages; | 34 | static struct page **pages; |
| 36 | size_t pages_size = pcpu_nr_units * pcpu_unit_pages * sizeof(pages[0]); | 35 | size_t pages_size = pcpu_nr_units * pcpu_unit_pages * sizeof(pages[0]); |
| @@ -275,7 +274,7 @@ static int pcpu_populate_chunk(struct pcpu_chunk *chunk, | |||
| 275 | { | 274 | { |
| 276 | struct page **pages; | 275 | struct page **pages; |
| 277 | 276 | ||
| 278 | pages = pcpu_get_pages(chunk); | 277 | pages = pcpu_get_pages(); |
| 279 | if (!pages) | 278 | if (!pages) |
| 280 | return -ENOMEM; | 279 | return -ENOMEM; |
| 281 | 280 | ||
| @@ -313,7 +312,7 @@ static void pcpu_depopulate_chunk(struct pcpu_chunk *chunk, | |||
| 313 | * successful population attempt so the temp pages array must | 312 | * successful population attempt so the temp pages array must |
| 314 | * be available now. | 313 | * be available now. |
| 315 | */ | 314 | */ |
| 316 | pages = pcpu_get_pages(chunk); | 315 | pages = pcpu_get_pages(); |
| 317 | BUG_ON(!pages); | 316 | BUG_ON(!pages); |
| 318 | 317 | ||
| 319 | /* unmap and free */ | 318 | /* unmap and free */ |
diff --git a/mm/percpu.c b/mm/percpu.c index 5696039b5c07..60a6488e9e6d 100644 --- a/mm/percpu.c +++ b/mm/percpu.c | |||
| @@ -1011,8 +1011,11 @@ area_found: | |||
| 1011 | mutex_unlock(&pcpu_alloc_mutex); | 1011 | mutex_unlock(&pcpu_alloc_mutex); |
| 1012 | } | 1012 | } |
| 1013 | 1013 | ||
| 1014 | if (chunk != pcpu_reserved_chunk) | 1014 | if (chunk != pcpu_reserved_chunk) { |
| 1015 | spin_lock_irqsave(&pcpu_lock, flags); | ||
| 1015 | pcpu_nr_empty_pop_pages -= occ_pages; | 1016 | pcpu_nr_empty_pop_pages -= occ_pages; |
| 1017 | spin_unlock_irqrestore(&pcpu_lock, flags); | ||
| 1018 | } | ||
| 1016 | 1019 | ||
| 1017 | if (pcpu_nr_empty_pop_pages < PCPU_EMPTY_POP_PAGES_LOW) | 1020 | if (pcpu_nr_empty_pop_pages < PCPU_EMPTY_POP_PAGES_LOW) |
| 1018 | pcpu_schedule_balance_work(); | 1021 | pcpu_schedule_balance_work(); |
