mm: add vzalloc() and vzalloc_node() helpers
Add vzalloc() and vzalloc_node() to encapsulate the vmalloc-then-memset-zero operation. Use __GFP_ZERO to zero fill the allocated memory. Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Cc: Christoph Lameter <cl@linux-foundation.org> Acked-by: Greg Ungerer <gerg@snapgear.com> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
7bbc0905ea
commit
e1ca7788de
49
mm/nommu.c
49
mm/nommu.c
@@ -293,11 +293,58 @@ void *vmalloc(unsigned long size)
|
||||
}
|
||||
EXPORT_SYMBOL(vmalloc);
|
||||
|
||||
/*
|
||||
* vzalloc - allocate virtually continguos memory with zero fill
|
||||
*
|
||||
* @size: allocation size
|
||||
*
|
||||
* Allocate enough pages to cover @size from the page level
|
||||
* allocator and map them into continguos kernel virtual space.
|
||||
* The memory allocated is set to zero.
|
||||
*
|
||||
* For tight control over page level allocator and protection flags
|
||||
* use __vmalloc() instead.
|
||||
*/
|
||||
void *vzalloc(unsigned long size)
|
||||
{
|
||||
return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
|
||||
PAGE_KERNEL);
|
||||
}
|
||||
EXPORT_SYMBOL(vzalloc);
|
||||
|
||||
/**
|
||||
* vmalloc_node - allocate memory on a specific node
|
||||
* @size: allocation size
|
||||
* @node: numa node
|
||||
*
|
||||
* Allocate enough pages to cover @size from the page level
|
||||
* allocator and map them into contiguous kernel virtual space.
|
||||
*
|
||||
* For tight control over page level allocator and protection flags
|
||||
* use __vmalloc() instead.
|
||||
*/
|
||||
void *vmalloc_node(unsigned long size, int node)
|
||||
{
|
||||
return vmalloc(size);
|
||||
}
|
||||
EXPORT_SYMBOL(vmalloc_node);
|
||||
|
||||
/**
|
||||
* vzalloc_node - allocate memory on a specific node with zero fill
|
||||
* @size: allocation size
|
||||
* @node: numa node
|
||||
*
|
||||
* Allocate enough pages to cover @size from the page level
|
||||
* allocator and map them into contiguous kernel virtual space.
|
||||
* The memory allocated is set to zero.
|
||||
*
|
||||
* For tight control over page level allocator and protection flags
|
||||
* use __vmalloc() instead.
|
||||
*/
|
||||
void *vzalloc_node(unsigned long size, int node)
|
||||
{
|
||||
return vzalloc(size);
|
||||
}
|
||||
EXPORT_SYMBOL(vzalloc_node);
|
||||
|
||||
#ifndef PAGE_KERNEL_EXEC
|
||||
# define PAGE_KERNEL_EXEC PAGE_KERNEL
|
||||
|
Reference in New Issue
Block a user