Re: [PATCH v2] leds: gpio: Clear error pointers for skipped LEDs
Linus Walleij <[email protected]> Sat, 25 Jul 2026 16:02:00 +0200
| Newsgroups | org.kernel.vger.linux-leds,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAD++jLnfebNT-XJrVVamfGkFF3-dLgbqS0sGK7DGmHn4HRYnvg@mail.gmail.com> |
On Fri, Jul 24, 2026 at 8:04=E2=80=AFPM Steve Dunnagan <[email protected]= > wrote: > gpio_led_get_gpiod() returns an error pointer when a platform-data > LED's GPIO is unavailable. gpio_led_probe() skips registration in that > case, but leaves the error pointer in led_dat->gpiod. > > The skipped entry remains included in priv->num_leds. During shutdown, > gpio_led_shutdown() walks those entries and passes the error pointer to > gpio_led_set(), producing: > > gpiod_set_value: invalid GPIO (errorpointer: -ENOENT) > > Clear led_dat->gpiod before skipping the LED so skipped entries do not > retain error-valued descriptors. > > Fixes: 45d4c6de4e49 ("leds: gpio: Try to lookup gpiod from device") > Suggested-by: Lee Jones <[email protected]> > Assisted-by: ChatGPT:GPT-5.5-Thinking > Signed-off-by: Steve Dunnagan <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Yours, Linus Walleij