| From 5a838c3b60e3a36ade764cf7751b8f17d7c9c2da Mon Sep 17 00:00:00 2001 |
| From: Jianyu Zhan <nasa4836@gmail.com> |
| Date: Mon, 14 Apr 2014 13:47:40 +0800 |
| Subject: percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() |
| |
| From: Jianyu Zhan <nasa4836@gmail.com> |
| |
| commit 5a838c3b60e3a36ade764cf7751b8f17d7c9c2da upstream. |
| |
| pcpu_chunk_struct_size = sizeof(struct pcpu_chunk) + |
| BITS_TO_LONGS(pcpu_unit_pages) * sizeof(unsigned long) |
| |
| It hardly could be ever bigger than PAGE_SIZE even for large-scale machine, |
| but for consistency with its couterpart pcpu_mem_zalloc(), |
| use pcpu_mem_free() instead. |
| |
| Commit b4916cb17c26 ("percpu: make pcpu_free_chunk() use |
| pcpu_mem_free() instead of kfree()") addressed this problem, but |
| missed this one. |
| |
| tj: commit message updated |
| |
| Signed-off-by: Jianyu Zhan <nasa4836@gmail.com> |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Fixes: 099a19d91ca4 ("percpu: allow limited allocation before slab is online) |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| mm/percpu.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/mm/percpu.c |
| +++ b/mm/percpu.c |
| @@ -612,7 +612,7 @@ static struct pcpu_chunk *pcpu_alloc_chu |
| chunk->map = pcpu_mem_zalloc(PCPU_DFL_MAP_ALLOC * |
| sizeof(chunk->map[0])); |
| if (!chunk->map) { |
| - kfree(chunk); |
| + pcpu_mem_free(chunk, pcpu_chunk_struct_size); |
| return NULL; |
| } |
| |