gpio: refactor gpiochip_allocate_mask() with bitmap_alloc()
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Thu, 18 Jul 2019 06:51:01 +0000 (15:51 +0900)
committerLinus Walleij <linus.walleij@linaro.org>
Fri, 2 Aug 2019 22:25:25 +0000 (00:25 +0200)
Refactor gpiochip_allocate_mask() slightly by using bitmap_alloc().

I used bitmap_free() for the corresponding free parts. Actually,
bitmap_free() is a wrapper of kfree(), but I did this for consistency.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Link: https://lore.kernel.org/r/20190718065101.26994-1-yamada.masahiro@socionext.com
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/gpio/gpiolib.c

index 20f1312..537a37a 100644 (file)
@@ -351,7 +351,7 @@ static unsigned long *gpiochip_allocate_mask(struct gpio_chip *chip)
 {
        unsigned long *p;
 
-       p = kmalloc_array(BITS_TO_LONGS(chip->ngpio), sizeof(*p), GFP_KERNEL);
+       p = bitmap_alloc(chip->ngpio, GFP_KERNEL);
        if (!p)
                return NULL;
 
@@ -385,7 +385,7 @@ static int gpiochip_init_valid_mask(struct gpio_chip *gpiochip)
 
 static void gpiochip_free_valid_mask(struct gpio_chip *gpiochip)
 {
-       kfree(gpiochip->valid_mask);
+       bitmap_free(gpiochip->valid_mask);
        gpiochip->valid_mask = NULL;
 }
 
@@ -1620,7 +1620,7 @@ static int gpiochip_irqchip_init_valid_mask(struct gpio_chip *gpiochip)
 
 static void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gpiochip)
 {
-       kfree(gpiochip->irq.valid_mask);
+       bitmap_free(gpiochip->irq.valid_mask);
        gpiochip->irq.valid_mask = NULL;
 }