[PATCH 1/6] bitmap: fix opencoded bitmap_allocate_region()

Yury Norov posted 6 patches 2 years, 6 months ago
There is a newer version of this series
[PATCH 1/6] bitmap: fix opencoded bitmap_allocate_region()
Posted by Yury Norov 2 years, 6 months ago
bitmap_find_region() opencodes bitmap_allocate_region(). Fix it.

Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
 lib/bitmap.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/lib/bitmap.c b/lib/bitmap.c
index ddb31015e38a..0bed9d943d96 100644
--- a/lib/bitmap.c
+++ b/lib/bitmap.c
@@ -1314,12 +1314,10 @@ int bitmap_find_free_region(unsigned long *bitmap, unsigned int bits, int order)
 {
 	unsigned int pos, end;		/* scans bitmap by regions of size order */
 
-	for (pos = 0 ; (end = pos + (1U << order)) <= bits; pos = end) {
-		if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE))
-			continue;
-		__reg_op(bitmap, pos, order, REG_OP_ALLOC);
-		return pos;
-	}
+	for (pos = 0 ; (end = pos + (1U << order)) <= bits; pos = end)
+		if (!bitmap_allocate_region(bitmap, pos, order))
+			return pos;
+
 	return -ENOMEM;
 }
 EXPORT_SYMBOL(bitmap_find_free_region);
-- 
2.39.2
Re: [PATCH 1/6] bitmap: fix opencoded bitmap_allocate_region()
Posted by Andy Shevchenko 2 years, 6 months ago
On Wed, Jul 26, 2023 at 07:02:02PM -0700, Yury Norov wrote:
> bitmap_find_region() opencodes bitmap_allocate_region(). Fix it.

...

> +	for (pos = 0 ; (end = pos + (1U << order)) <= bits; pos = end)

In the other patch you use BIT(order), why not here?

> +		if (!bitmap_allocate_region(bitmap, pos, order))
> +			return pos;

-- 
With Best Regards,
Andy Shevchenko