summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2015-07-13 13:17:07 +0900
committerSimon Glass <sjg@chromium.org>2015-07-22 07:30:44 -0600
commit6b9f9eadffb5f64801746593784e12f07f2fadd0 (patch)
treea7175969f30db000d6d1bcc049e5f2a55e042314 /lib
parentebc3328cccc2bc7968fbd179e8e30fa1282b391a (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')
-rw-r--r--lib/linux_compat.c13
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)