diff options
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/migrate.c | 3 | ||||
| -rw-r--r-- | mm/page_alloc.c | 2 | ||||
| -rw-r--r-- | mm/readahead.c | 2 | ||||
| -rw-r--r-- | mm/slab.c | 2 | ||||
| -rw-r--r-- | mm/vmalloc.c | 26 |
5 files changed, 19 insertions, 16 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index ba2453f9483d..b4979d423d2b 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
| @@ -952,7 +952,8 @@ asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages, | |||
| 952 | goto out; | 952 | goto out; |
| 953 | 953 | ||
| 954 | pm[i].node = node; | 954 | pm[i].node = node; |
| 955 | } | 955 | } else |
| 956 | pm[i].node = 0; /* anything to not match MAX_NUMNODES */ | ||
| 956 | } | 957 | } |
| 957 | /* End marker */ | 958 | /* End marker */ |
| 958 | pm[nr_pages].node = MAX_NUMNODES; | 959 | pm[nr_pages].node = MAX_NUMNODES; |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index b55bb358b832..bf2f6cff1d6a 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -853,7 +853,7 @@ again: | |||
| 853 | pcp = &zone_pcp(zone, cpu)->pcp[cold]; | 853 | pcp = &zone_pcp(zone, cpu)->pcp[cold]; |
| 854 | local_irq_save(flags); | 854 | local_irq_save(flags); |
| 855 | if (!pcp->count) { | 855 | if (!pcp->count) { |
| 856 | pcp->count += rmqueue_bulk(zone, 0, | 856 | pcp->count = rmqueue_bulk(zone, 0, |
| 857 | pcp->batch, &pcp->list); | 857 | pcp->batch, &pcp->list); |
| 858 | if (unlikely(!pcp->count)) | 858 | if (unlikely(!pcp->count)) |
| 859 | goto failed; | 859 | goto failed; |
diff --git a/mm/readahead.c b/mm/readahead.c index 1ba736ac0367..23cb61a01c6e 100644 --- a/mm/readahead.c +++ b/mm/readahead.c | |||
| @@ -173,6 +173,8 @@ static int read_pages(struct address_space *mapping, struct file *filp, | |||
| 173 | 173 | ||
| 174 | if (mapping->a_ops->readpages) { | 174 | if (mapping->a_ops->readpages) { |
| 175 | ret = mapping->a_ops->readpages(filp, mapping, pages, nr_pages); | 175 | ret = mapping->a_ops->readpages(filp, mapping, pages, nr_pages); |
| 176 | /* Clean up the remaining pages */ | ||
| 177 | put_pages_list(pages); | ||
| 176 | goto out; | 178 | goto out; |
| 177 | } | 179 | } |
| 178 | 180 | ||
| @@ -883,7 +883,7 @@ static void init_reap_node(int cpu) | |||
| 883 | if (node == MAX_NUMNODES) | 883 | if (node == MAX_NUMNODES) |
| 884 | node = first_node(node_online_map); | 884 | node = first_node(node_online_map); |
| 885 | 885 | ||
| 886 | __get_cpu_var(reap_node) = node; | 886 | per_cpu(reap_node, cpu) = node; |
| 887 | } | 887 | } |
| 888 | 888 | ||
| 889 | static void next_reap_node(void) | 889 | static void next_reap_node(void) |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 46606c133e82..7dc6aa745166 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
| @@ -186,10 +186,8 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long fl | |||
| 186 | if (unlikely(!area)) | 186 | if (unlikely(!area)) |
| 187 | return NULL; | 187 | return NULL; |
| 188 | 188 | ||
| 189 | if (unlikely(!size)) { | 189 | if (unlikely(!size)) |
| 190 | kfree (area); | ||
| 191 | return NULL; | 190 | return NULL; |
| 192 | } | ||
| 193 | 191 | ||
| 194 | /* | 192 | /* |
| 195 | * We always allocate a guard page. | 193 | * We always allocate a guard page. |
| @@ -532,11 +530,12 @@ void *vmalloc_user(unsigned long size) | |||
| 532 | void *ret; | 530 | void *ret; |
| 533 | 531 | ||
| 534 | ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL); | 532 | ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL); |
| 535 | write_lock(&vmlist_lock); | 533 | if (ret) { |
| 536 | area = __find_vm_area(ret); | 534 | write_lock(&vmlist_lock); |
| 537 | area->flags |= VM_USERMAP; | 535 | area = __find_vm_area(ret); |
| 538 | write_unlock(&vmlist_lock); | 536 | area->flags |= VM_USERMAP; |
| 539 | 537 | write_unlock(&vmlist_lock); | |
| 538 | } | ||
| 540 | return ret; | 539 | return ret; |
| 541 | } | 540 | } |
| 542 | EXPORT_SYMBOL(vmalloc_user); | 541 | EXPORT_SYMBOL(vmalloc_user); |
| @@ -605,11 +604,12 @@ void *vmalloc_32_user(unsigned long size) | |||
| 605 | void *ret; | 604 | void *ret; |
| 606 | 605 | ||
| 607 | ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); | 606 | ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); |
| 608 | write_lock(&vmlist_lock); | 607 | if (ret) { |
| 609 | area = __find_vm_area(ret); | 608 | write_lock(&vmlist_lock); |
| 610 | area->flags |= VM_USERMAP; | 609 | area = __find_vm_area(ret); |
| 611 | write_unlock(&vmlist_lock); | 610 | area->flags |= VM_USERMAP; |
| 612 | 611 | write_unlock(&vmlist_lock); | |
| 612 | } | ||
| 613 | return ret; | 613 | return ret; |
| 614 | } | 614 | } |
| 615 | EXPORT_SYMBOL(vmalloc_32_user); | 615 | EXPORT_SYMBOL(vmalloc_32_user); |
