diff options
author | Masahiro Yamada | 2015-07-13 13:17:07 +0900 |
---|---|---|
committer | Simon Glass | 2015-07-22 07:30:44 -0600 |
commit | 6b9f9eadffb5f64801746593784e12f07f2fadd0 (patch) | |
tree | a7175969f30db000d6d1bcc049e5f2a55e042314 /lib/linux_compat.c | |
parent | ebc3328cccc2bc7968fbd179e8e30fa1282b391a (diff) |
linux_compat: handle __GFP_ZERO in kmalloc()
Currently, kzalloc() returns zero-filled memory, while kmalloc()
simply ignores the second argument and never fills the memory
area with zeros.
I want kmalloc(size, __GFP_ZERO) to behave as kzalloc() does,
which will make it easier to add more memory allocator variants.
With the introduction of __GFP_ZERO flag, going forward, kzmalloc()
variants can fall back to kmalloc() enabling the __GFP_ZERO flag.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Acked-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Diffstat (limited to 'lib/linux_compat.c')
-rw-r--r-- | lib/linux_compat.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/linux_compat.c b/lib/linux_compat.c index 8c7a7b57525..a936a7eac21 100644 --- a/lib/linux_compat.c +++ b/lib/linux_compat.c @@ -16,14 +16,13 @@ unsigned long copy_from_user(void *dest, const void *src, void *kmalloc(size_t size, int flags) { - return memalign(ARCH_DMA_MINALIGN, size); -} + void *p; -void *kzalloc(size_t size, int flags) -{ - void *ptr = kmalloc(size, flags); - memset(ptr, 0, size); - return ptr; + p = memalign(ARCH_DMA_MINALIGN, size); + if (flags & __GFP_ZERO) + memset(p, 0, size); + + return p; } struct kmem_cache *get_mem(int element_sz) |