class_find_device_by_of_node() calls class_find_device(), it will take
the reference, use the put_device() to drop the reference when not need
anymore.
Fixes: 699a8c7c4bd3 ("leds: Add of_led_get() and led_put()")
Signed-off-by: Miaoqian Lin <[email protected]>
---
drivers/leds/led-class.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 6a8ea94834fa..705b7a89f3d8 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -240,6 +240,7 @@ struct led_classdev *of_led_get(struct device_node *np, int index)
return ERR_PTR(-EPROBE_DEFER);
led_cdev = dev_get_drvdata(led_dev);
+ put_device(led_dev);
if (!try_module_get(led_cdev->dev->parent->driver->owner))
return ERR_PTR(-ENODEV);
--
2.25.1
On Tue, 20 Dec 2022, Miaoqian Lin wrote:
> class_find_device_by_of_node() calls class_find_device(), it will take
> the reference, use the put_device() to drop the reference when not need
> anymore.
>
> Fixes: 699a8c7c4bd3 ("leds: Add of_led_get() and led_put()")
> Signed-off-by: Miaoqian Lin <[email protected]>
> ---
> drivers/leds/led-class.c | 1 +
> 1 file changed, 1 insertion(+)
Applied, thanks
--
Lee Jones [李琼斯]