Hi Andy, On Sat, Jul 18, 2020 at 11:26 PM Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > Sparse can't see locking scheme used in ->get_multiple() and > ->set_multiple() callbacks. > CHECK .../drivers/gpio/gpio-aggregator.c > .../spinlock.h:409:9: warning: context imbalance in 'gpio_fwd_get_multiple' - unexpected unlock > .../spinlock.h:409:9: warning: context imbalance in 'gpio_fwd_set_multiple' - unexpected unlock > > Refactor them to have better readability and make Sparse happy. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Thanks for your patch! > --- a/drivers/gpio/gpio-aggregator.c > +++ b/drivers/gpio/gpio-aggregator.c > +static int gpio_fwd_get_multiple_locked(struct gpio_chip *chip, > + unsigned long *mask, unsigned long *bits) Trading one static analysis tool error for a different one? ;-) ERROR: code indent should use tabs where possible > @@ -400,11 +404,23 @@ static void gpio_fwd_set_multiple(struct gpio_chip *chip, unsigned long *mask, > } > > gpiod_set_array_value(j, descs, NULL, values); > +} > > - if (chip->can_sleep) > +static void gpio_fwd_set_multiple_locked(struct gpio_chip *chip, > + unsigned long *mask, unsigned long *bits) ERROR: code indent should use tabs where possible With the above checkpatch errors fixed: Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> Code size impact is +52 bytes with arm-linux-gnueabihf-gcc 7.5.0. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds