Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3713a4e1 authored by Yury Norov's avatar Yury Norov Committed by Linus Torvalds
Browse files

include/linux/cpumask.h: fix double string traverse in cpumask_parse

cpumask_parse() finds first occurrence of either or strchr() and
strlen().  We can do it better with a single call of strchrnul().

[akpm@linux-foundation.org: remove unneeded cast]
Link: http://lkml.kernel.org/r/20190409204208.12190-1-ynorov@marvell.com


Signed-off-by: default avatarYury Norov <ynorov@marvell.com>
Acked-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 4e7301e6
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -633,8 +633,7 @@ static inline int cpumask_parselist_user(const char __user *buf, int len,
 */
static inline int cpumask_parse(const char *buf, struct cpumask *dstp)
{
	char *nl = strchr(buf, '\n');
	unsigned int len = nl ? (unsigned int)(nl - buf) : strlen(buf);
	unsigned int len = strchrnul(buf, '\n') - buf;

	return bitmap_parse(buf, len, cpumask_bits(dstp), nr_cpumask_bits);
}