Hi Linus, Bartosz, Andy, This patch series contains two improvements for the parsing code in the GPIO Aggregator. The second one converts the driver to use bitmap_parselist() for parsing GPIO offsets and/or ranges, as suggested by Andy[1]. Note that I'm not super happy with the mask[] array on the stack. But there is no real limit on the number of GPIO lines provided by a single gpiochip, except for the global ARCH_NR_GPIOS. I also considered getting rid of the custom isrange() function. However, the check for "!isrange(offsets)" cannot be replaced by a check for bitmap_parselist() returning -EINVAL, as bitmap_parselist() happily accepts an empty list. Hence I'm afraid isrange() has to stay. Andy also suggested to use strstrip() in get_arg(). However, I see no point in that, as get_arg() has to find the end of the actual parameter anyway. Thanks for your comments! [1] https://lore.kernel.org/r/20200520121420.GA1867563@xxxxxxxxxxxxxxxxxx Geert Uytterhoeven (2): gpio: aggregator: Drop pre-initialization in get_arg() gpio: aggregator: Use bitmap_parselist() for parsing GPIO offsets drivers/gpio/gpio-aggregator.c | 46 ++++++++++++---------------------- 1 file changed, 16 insertions(+), 30 deletions(-) -- 2.17.1 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