Commit 9ca908f4 authored by Milton Miller's avatar Milton Miller Committed by Linus Torvalds

kcalloc: remove runtime division

While in all cases in the kernel we know the size of the elements to be
created, we don't always know the count of elements.  By commuting the size
and count in the overflow check, the compiler can reduce the runtime division
of size_t with a compare to a (unique) constant in these cases.
Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 5c755e9f
...@@ -180,7 +180,7 @@ size_t ksize(const void *); ...@@ -180,7 +180,7 @@ size_t ksize(const void *);
*/ */
static inline void *kcalloc(size_t n, size_t size, gfp_t flags) static inline void *kcalloc(size_t n, size_t size, gfp_t flags)
{ {
if (n != 0 && size > ULONG_MAX / n) if (size != 0 && n > ULONG_MAX / size)
return NULL; return NULL;
return __kmalloc(n * size, flags | __GFP_ZERO); return __kmalloc(n * size, flags | __GFP_ZERO);
} }
......
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