Messages in this thread | | | Date | Wed, 15 Apr 2015 11:29:52 +0200 | From | Sebastian Hesselbarth <> | Subject | Re: [PATCH] leds: gpio: Fix device teardown on probe deferral |
| |
On 04/15/2015 11:11 AM, Jacek Anaszewski wrote: > On 04/14/2015 11:23 PM, Sebastian Hesselbarth wrote: >> In gpio_leds_create(), when devm_get_gpiod_from_child() fails with >> -EPROBE_DEFER on the second gpio led to be created, the first already >> registered led is not torn down properly. This causes create_gpio_led() >> to fail for the first led on re-probe(). >> >> Fix this misbehaviour by incrementing num_leds only if all >> potentially failing calls completed successfully. >> >> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> >> --- >> Cc: Bryan Wu <cooloney@gmail.com> >> Cc: Richard Purdie <rpurdie@rpsys.net> >> Cc: linux-leds@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org >> --- >> drivers/leds/leds-gpio.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) > > For this patch: > > Acked-by: Jacek Anaszewski <j.anaszewski@samsung.com>
Jacek, Thanks!
> I have a question regarding the sequence above on line 201: > > if (!led.name) > return ERR_PTR(-EINVAL); > > Shouldn't this be also 'goto err"?
Yes, every error within the loop has to goto the err label. Mind to send a patch fixing it?
Sebastian
| |