Commit a5c96d8a authored by Linus Torvalds's avatar Linus Torvalds

Fix up non-NUMA SLAB configuration for zero-sized allocations

I suspect Christoph tested his code only in the NUMA configuration, for
the combination of SLAB+non-NUMA the zero-sized kmalloc's would not work.

Of course, this would only trigger in configurations where those zero-
sized allocations happen (not very common), so that may explain why it
wasn't more widely noticed.

Seen by by Andi Kleen under qemu, and there seems to be a report by
Michael Tsirkin on it too.

Cc: Andi Kleen <>
Cc: Roland Dreier <>
Cc: Michael S. Tsirkin <>
Cc: Pekka Enberg <>
Cc: Christoph Lameter <>
Cc: Andrew Morton <>
Signed-off-by: default avatarLinus Torvalds <>
parent ce8c2293
......@@ -3690,8 +3690,8 @@ static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
* functions.
cachep = __find_general_cachep(size, flags);
if (unlikely(cachep == NULL))
return NULL;
if (unlikely(ZERO_OR_NULL_PTR(cachep)))
return cachep;
return __cache_alloc(cachep, flags, caller);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment