From 6b9f9eadffb5f64801746593784e12f07f2fadd0 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Mon, 13 Jul 2015 13:17:07 +0900 Subject: 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 Reviewed-by: Heiko Schocher Acked-by: Simon Glass Reviewed-by: Lukasz Majewski --- lib/linux_compat.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'lib/linux_compat.c') diff --git a/lib/linux_compat.c b/lib/linux_compat.c index 8c7a7b5752..a936a7eac2 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) -- cgit v1.2.3