wwan: core: Use the bitmap API to allocate bitmaps
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 11 Sep 2023 13:16:18 +0000 (16:16 +0300)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 12 Sep 2023 09:49:22 +0000 (11:49 +0200)
Use bitmap_zalloc() and bitmap_free() instead of hand-writing them.
It is less verbose and it improves the type checking and semantic.

While at it, add missing header inclusion (should be bitops.h,
but with the above change it becomes bitmap.h).

Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
Reviewed-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230911131618.4159437-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/wwan/wwan_core.c

index 284ab1f56391aae8fff7d7172cb272c46d3b5ab1..87df60916960afb64830fa4c3315286540d553b9 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2021, Linaro Ltd <loic.poulain@linaro.org> */
 
+#include <linux/bitmap.h>
 #include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/debugfs.h>
@@ -395,7 +396,7 @@ static int __wwan_port_dev_assign_name(struct wwan_port *port, const char *fmt)
        char buf[0x20];
        int id;
 
-       idmap = (unsigned long *)get_zeroed_page(GFP_KERNEL);
+       idmap = bitmap_zalloc(max_ports, GFP_KERNEL);
        if (!idmap)
                return -ENOMEM;
 
@@ -414,7 +415,7 @@ static int __wwan_port_dev_assign_name(struct wwan_port *port, const char *fmt)
 
        /* Allocate unique id */
        id = find_first_zero_bit(idmap, max_ports);
-       free_page((unsigned long)idmap);
+       bitmap_free(idmap);
 
        snprintf(buf, sizeof(buf), fmt, id);    /* Name generation */