Re: [PATCH v2] leds: gpio: Clear error pointers for skipped LEDs
From: Linus Walleij
Date: Sat Jul 25 2026 - 10:02:22 EST
On Fri, Jul 24, 2026 at 8:04 PM Steve Dunnagan <sdunnaga@xxxxxxxxxx> 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 <lee@xxxxxxxxxx>
> Assisted-by: ChatGPT:GPT-5.5-Thinking
> Signed-off-by: Steve Dunnagan <sdunnaga@xxxxxxxxxx>
Reviewed-by: Linus Walleij <linusw@xxxxxxxxxx>
Yours,
Linus Walleij