From: Alexey Dobriyan Date: Thu, 5 Apr 2018 23:20:44 +0000 (-0700) Subject: slab: make size_index_elem() unsigned int X-Git-Tag: v4.17-rc1~99^2~77 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=ac914d08bbb6afdc089ca6651af1988533c9786c;p=linux-block.git slab: make size_index_elem() unsigned int size_index_elem() always works with small sizes (kmalloc caches are 32-bit) and returns small indexes. Link: http://lkml.kernel.org/r/20180305200730.15812-8-adobriyan@gmail.com Signed-off-by: Alexey Dobriyan Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/slab_common.c b/mm/slab_common.c index dda966e6bc58..8abb2a46ae85 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -998,7 +998,7 @@ static u8 size_index[24] __ro_after_init = { 2 /* 192 */ }; -static inline int size_index_elem(size_t bytes) +static inline unsigned int size_index_elem(unsigned int bytes) { return (bytes - 1) / 8; } @@ -1067,13 +1067,13 @@ const struct kmalloc_info_struct kmalloc_info[] __initconst = { */ void __init setup_kmalloc_cache_index_table(void) { - int i; + unsigned int i; BUILD_BUG_ON(KMALLOC_MIN_SIZE > 256 || (KMALLOC_MIN_SIZE & (KMALLOC_MIN_SIZE - 1))); for (i = 8; i < KMALLOC_MIN_SIZE; i += 8) { - int elem = size_index_elem(i); + unsigned int elem = size_index_elem(i); if (elem >= ARRAY_SIZE(size_index)) break;