Messages in this thread Patch in this message |  | | | Date | Sat, 28 Jan 2006 23:30:32 +0100 | | From | Adrian Bunk <> | | Subject | [RFC: -mm 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: Adrian Bunk <bunk@stusta.de>
--- This patch was already sent on: - 20 Aug 2005
--- linux-2.6.13-rc6-mm1-full/include/linux/slab.h.old 2005-08-20 04:10:09.000000000 +0200 +++ linux-2.6.13-rc6-mm1-full/include/linux/slab.h 2005-08-20 04:11:04.000000000 +0200 @@ -113,7 +113,7 @@ */ static inline void *kcalloc(size_t n, size_t size, unsigned int __nocast flags) { - if (n != 0 && size > INT_MAX / n) + if (n != 0 && size > ULONG_MAX / n) return NULL; return kzalloc(n * size, flags); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |