From: Yury Norov Date: Fri, 12 Jul 2019 03:53:33 +0000 (-0700) Subject: mm/slub.c: avoid double string traverse in kmem_cache_flags() X-Git-Tag: tags/kvm-5.3-2~35^2~119 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9cf3a8d847bd08977dc168ed243ffbef3c456d88;p=users%2Fdwmw2%2Flinux.git mm/slub.c: avoid double string traverse in kmem_cache_flags() If ',' is not found, kmem_cache_flags() calls strlen() to find the end of line. We can do it in a single pass using strchrnul(). Link: http://lkml.kernel.org/r/20190501053111.7950-1-ynorov@marvell.com Signed-off-by: Yury Norov Acked-by: Aaron Tomlin Reviewed-by: Andrew Morton Cc: 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/slub.c b/mm/slub.c index cd04dbd2b5d05..1802c87799ffc 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1313,9 +1313,7 @@ slab_flags_t kmem_cache_flags(unsigned int object_size, char *end, *glob; size_t cmplen; - end = strchr(iter, ','); - if (!end) - end = iter + strlen(iter); + end = strchrnul(iter, ','); glob = strnchr(iter, end - iter, '*'); if (glob)