aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmalloc.c
diff options
context:
space:
mode:
authorGlauber Costa <glommer@redhat.com>2009-01-06 17:39:19 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-06 18:59:01 -0500
commit848778483351e90f9a2c587bdbe0c78b17c1e30b (patch)
tree9248871a3e40b68a709bf69efeaf5c52cb45cbd1 /mm/vmalloc.c
parentc1279c4ef37a06ba708e6b1f6fd98b45c52770f6 (diff)
mm: vmalloc improve vmallocinfo
If we do that, output of files like /proc/vmallocinfo will show things like "vmalloc_32", "vmalloc_user", or whomever the caller was as the caller. This info is not as useful as the real caller of the allocation. So, proposal is to call __vmalloc_node node directly, with matching parameters to save the caller information Signed-off-by: Glauber Costa <glommer@redhat.com> Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmalloc.c')
-rw-r--r--mm/vmalloc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 2644afb9d6ab..b62ea569aa43 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1376,7 +1376,8 @@ void *vmalloc_user(unsigned long size)
1376 struct vm_struct *area; 1376 struct vm_struct *area;
1377 void *ret; 1377 void *ret;
1378 1378
1379 ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL); 1379 ret = __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
1380 PAGE_KERNEL, -1, __builtin_return_address(0));
1380 if (ret) { 1381 if (ret) {
1381 area = find_vm_area(ret); 1382 area = find_vm_area(ret);
1382 area->flags |= VM_USERMAP; 1383 area->flags |= VM_USERMAP;
@@ -1421,7 +1422,8 @@ EXPORT_SYMBOL(vmalloc_node);
1421 1422
1422void *vmalloc_exec(unsigned long size) 1423void *vmalloc_exec(unsigned long size)
1423{ 1424{
1424 return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC); 1425 return __vmalloc_node(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
1426 -1, __builtin_return_address(0));
1425} 1427}
1426 1428
1427#if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) 1429#if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32)
@@ -1441,7 +1443,8 @@ void *vmalloc_exec(unsigned long size)
1441 */ 1443 */
1442void *vmalloc_32(unsigned long size) 1444void *vmalloc_32(unsigned long size)
1443{ 1445{
1444 return __vmalloc(size, GFP_VMALLOC32, PAGE_KERNEL); 1446 return __vmalloc_node(size, GFP_VMALLOC32, PAGE_KERNEL,
1447 -1, __builtin_return_address(0));
1445} 1448}
1446EXPORT_SYMBOL(vmalloc_32); 1449EXPORT_SYMBOL(vmalloc_32);
1447 1450
@@ -1457,7 +1460,8 @@ void *vmalloc_32_user(unsigned long size)
1457 struct vm_struct *area; 1460 struct vm_struct *area;
1458 void *ret; 1461 void *ret;
1459 1462
1460 ret = __vmalloc(size, GFP_VMALLOC32 | __GFP_ZERO, PAGE_KERNEL); 1463 ret = __vmalloc_node(size, GFP_VMALLOC32 | __GFP_ZERO, PAGE_KERNEL,
1464 -1, __builtin_return_address(0));
1461 if (ret) { 1465 if (ret) {
1462 area = find_vm_area(ret); 1466 area = find_vm_area(ret);
1463 area->flags |= VM_USERMAP; 1467 area->flags |= VM_USERMAP;