aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYury Norov <[email protected]>2019-07-11 20:53:33 -0700
committerLinus Torvalds <[email protected]>2019-07-12 11:05:41 -0700
commit9cf3a8d847bd08977dc168ed243ffbef3c456d88 (patch)
tree7d5790a9f4c223ea58bf9b09befadaf821fe4428
parent966fede8e4be15bcc08e3c390080d3f9072a5367 (diff)
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/[email protected] Signed-off-by: Yury Norov <[email protected]> Acked-by: Aaron Tomlin <[email protected]> Reviewed-by: Andrew Morton <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: Pekka Enberg <[email protected]> Cc: David Rientjes <[email protected]> Cc: Joonsoo Kim <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r--mm/slub.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/mm/slub.c b/mm/slub.c
index cd04dbd2b5d0..1802c87799ff 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)