Commit b50ec7d8 authored by Adrian Bunk's avatar Adrian Bunk Committed by Linus Torvalds

[PATCH] kcalloc(): INT_MAX -> ULONG_MAX

Since size_t has the same size as a long on all architectures, it's enough
for overflow checks to check against ULONG_MAX.

This change could allow a compiler better optimization (especially in the
n=1 case).

The practical effect seems to be positive, but quite small:

    text           data     bss      dec            hex filename
21762380        5859870 1848928 29471178        1c1b1ca vmlinux-old
21762211        5859870 1848928 29471009        1c1b121 vmlinux-patched
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent a482289d
...@@ -118,7 +118,7 @@ extern void *kzalloc(size_t, gfp_t); ...@@ -118,7 +118,7 @@ extern void *kzalloc(size_t, gfp_t);
*/ */
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 > INT_MAX / n) if (n != 0 && size > ULONG_MAX / n)
return NULL; return NULL;
return kzalloc(n * size, flags); return kzalloc(n * size, flags);
} }
......
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