diff options
author | Andy Shevchenko <andy.shevchenko@gmail.com> | 2021-05-29 14:19:34 +0300 |
---|---|---|
committer | Pavel Machek <pavel@ucw.cz> | 2021-08-03 23:49:37 +0200 |
commit | 8aa41952ef245449df79100e1942b5e6288b098a (patch) | |
tree | bc0d0862b3a4eb7c4fc70e2cabfc6ecfdea66cbe /drivers/leds | |
parent | 7e1baaaa2407a642ea19b58e214fab9a69cda1d7 (diff) |
leds: rt8515: Put fwnode in any case during ->probe()
fwnode_get_next_available_child_node() bumps a reference counting of
a returned variable. We have to balance it whenever we return to
the caller.
Fixes: e1c6edcbea13 ("leds: rt8515: Add Richtek RT8515 LED driver")
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/leds')
-rw-r--r-- | drivers/leds/flash/leds-rt8515.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/leds/flash/leds-rt8515.c b/drivers/leds/flash/leds-rt8515.c index 590bfa180d10..44904fdee3cc 100644 --- a/drivers/leds/flash/leds-rt8515.c +++ b/drivers/leds/flash/leds-rt8515.c @@ -343,8 +343,9 @@ static int rt8515_probe(struct platform_device *pdev) ret = devm_led_classdev_flash_register_ext(dev, fled, &init_data); if (ret) { - dev_err(dev, "can't register LED %s\n", led->name); + fwnode_handle_put(child); mutex_destroy(&rt->lock); + dev_err(dev, "can't register LED %s\n", led->name); return ret; } @@ -362,6 +363,7 @@ static int rt8515_probe(struct platform_device *pdev) */ } + fwnode_handle_put(child); return 0; } |