gpiolib: Switch to bitmap_alloc()
Switch to bitmap_alloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
This commit is contained in:
parent
c80c44352d
commit
c354c29524
|
@ -2549,13 +2549,17 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
|
|||
mask = fastpath_mask;
|
||||
bits = fastpath_bits;
|
||||
} else {
|
||||
mask = kmalloc_array(2 * BITS_TO_LONGS(gc->ngpio),
|
||||
sizeof(*mask),
|
||||
can_sleep ? GFP_KERNEL : GFP_ATOMIC);
|
||||
gfp_t flags = can_sleep ? GFP_KERNEL : GFP_ATOMIC;
|
||||
|
||||
mask = bitmap_alloc(gc->ngpio, flags);
|
||||
if (!mask)
|
||||
return -ENOMEM;
|
||||
|
||||
bits = mask + BITS_TO_LONGS(gc->ngpio);
|
||||
bits = bitmap_alloc(gc->ngpio, flags);
|
||||
if (!bits) {
|
||||
bitmap_free(mask);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
||||
bitmap_zero(mask, gc->ngpio);
|
||||
|
@ -2581,7 +2585,9 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
|
|||
ret = gpio_chip_get_multiple(gc, mask, bits);
|
||||
if (ret) {
|
||||
if (mask != fastpath_mask)
|
||||
kfree(mask);
|
||||
bitmap_free(mask);
|
||||
if (bits != fastpath_bits)
|
||||
bitmap_free(bits);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -2602,7 +2608,9 @@ int gpiod_get_array_value_complex(bool raw, bool can_sleep,
|
|||
}
|
||||
|
||||
if (mask != fastpath_mask)
|
||||
kfree(mask);
|
||||
bitmap_free(mask);
|
||||
if (bits != fastpath_bits)
|
||||
bitmap_free(bits);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -2835,13 +2843,17 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
|
|||
mask = fastpath_mask;
|
||||
bits = fastpath_bits;
|
||||
} else {
|
||||
mask = kmalloc_array(2 * BITS_TO_LONGS(gc->ngpio),
|
||||
sizeof(*mask),
|
||||
can_sleep ? GFP_KERNEL : GFP_ATOMIC);
|
||||
gfp_t flags = can_sleep ? GFP_KERNEL : GFP_ATOMIC;
|
||||
|
||||
mask = bitmap_alloc(gc->ngpio, flags);
|
||||
if (!mask)
|
||||
return -ENOMEM;
|
||||
|
||||
bits = mask + BITS_TO_LONGS(gc->ngpio);
|
||||
bits = bitmap_alloc(gc->ngpio, flags);
|
||||
if (!bits) {
|
||||
bitmap_free(mask);
|
||||
return -ENOMEM;
|
||||
}
|
||||
}
|
||||
|
||||
bitmap_zero(mask, gc->ngpio);
|
||||
|
@ -2889,7 +2901,9 @@ int gpiod_set_array_value_complex(bool raw, bool can_sleep,
|
|||
gpio_chip_set_multiple(gc, mask, bits);
|
||||
|
||||
if (mask != fastpath_mask)
|
||||
kfree(mask);
|
||||
bitmap_free(mask);
|
||||
if (bits != fastpath_bits)
|
||||
bitmap_free(bits);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue