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

Commit d21c3d4d authored by Pan Xinhui's avatar Pan Xinhui Committed by Linus Torvalds
Browse files

lib/bitmap.c: correct a code style and do some, optimization



We can avoid in-loop incrementation of ndigits.  Save current totaldigits
to ndigits before loop, and check ndigits against totaldigits after the
loop.

Signed-off-by: default avatarPan Xinhui <xinhuix.pan@intel.com>
Cc: Yury Norov <yury.norov@gmail.com>
Cc: Chris Metcalf <cmetcalf@ezchip.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 774636e1
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -367,7 +367,8 @@ int __bitmap_parse(const char *buf, unsigned int buflen,

	nchunks = nbits = totaldigits = c = 0;
	do {
		chunk = ndigits = 0;
		chunk = 0;
		ndigits = totaldigits;

		/* Get the next chunk of the bitmap */
		while (buflen) {
@@ -406,9 +407,9 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
				return -EOVERFLOW;

			chunk = (chunk << 4) | hex_to_bin(c);
			ndigits++; totaldigits++;
			totaldigits++;
		}
		if (ndigits == 0)
		if (ndigits == totaldigits)
			return -EINVAL;
		if (nchunks == 0 && chunk == 0)
			continue;