Commit 9d7a3366 authored by Paul Gortmaker's avatar Paul Gortmaker Committed by Paul E. McKenney
Browse files

lib: bitmap: fold nbits into region struct



This will reduce parameter passing and enable using nbits as part
of future dynamic region parameter parsing.

Cc: Yury Norov <yury.norov@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Suggested-by: default avatarYury Norov <yury.norov@gmail.com>
Acked-by: default avatarYury Norov <yury.norov@gmail.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent 97330db3
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -487,24 +487,24 @@ EXPORT_SYMBOL(bitmap_print_to_pagebuf);

/*
 * Region 9-38:4/10 describes the following bitmap structure:
 * 0	   9  12    18			38
 * .........****......****......****......
 *	    ^  ^     ^			 ^
 *      start  off   group_len	       end
 * 0	   9  12    18			38	     N
 * .........****......****......****..................
 *	    ^  ^     ^			 ^	     ^
 *      start  off   group_len	       end	 nbits
 */
struct region {
	unsigned int start;
	unsigned int off;
	unsigned int group_len;
	unsigned int end;
	unsigned int nbits;
};

static int bitmap_set_region(const struct region *r,
				unsigned long *bitmap, int nbits)
static int bitmap_set_region(const struct region *r, unsigned long *bitmap)
{
	unsigned int start;

	if (r->end >= nbits)
	if (r->end >= r->nbits)
		return -ERANGE;

	for (start = r->start; start <= r->end; start += r->group_len)
@@ -640,7 +640,8 @@ int bitmap_parselist(const char *buf, unsigned long *maskp, int nmaskbits)
	struct region r;
	long ret;

	bitmap_zero(maskp, nmaskbits);
	r.nbits = nmaskbits;
	bitmap_zero(maskp, r.nbits);

	while (buf) {
		buf = bitmap_find_region(buf);
@@ -655,7 +656,7 @@ int bitmap_parselist(const char *buf, unsigned long *maskp, int nmaskbits)
		if (ret)
			return ret;

		ret = bitmap_set_region(&r, maskp, nmaskbits);
		ret = bitmap_set_region(&r, maskp);
		if (ret)
			return ret;
	}