summaryrefslogtreecommitdiffstats
path: root/drivers/leds/led-class.c
diff options
context:
space:
mode:
authorMiaoqian Lin <linmq006@gmail.com>2022-12-20 13:18:07 +0100
committerLee Jones <lee@kernel.org>2023-01-30 09:03:13 +0100
commitda1afe8e6099980fe1e2fd7436dca284af9d3f29 (patch)
tree9fcf58e0208d5728d17748281ebbe031c1b64e51 /drivers/leds/led-class.c
parentleds: pwm: Clear the led structure before parsing each child node (diff)
downloadlinux-da1afe8e6099980fe1e2fd7436dca284af9d3f29.tar.xz
linux-da1afe8e6099980fe1e2fd7436dca284af9d3f29.zip
leds: led-core: Fix refcount leak in of_led_get()
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 <linmq006@gmail.com> Signed-off-by: Lee Jones <lee@kernel.org> Link: https://lore.kernel.org/r/20221220121807.1543790-1-linmq006@gmail.com
Diffstat (limited to 'drivers/leds/led-class.c')
-rw-r--r--drivers/leds/led-class.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c
index 0c4b8d8d2b4f..a6b3adcd044a 100644
--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -253,6 +253,7 @@ struct led_classdev *of_led_get(struct device_node *np, int index)
led_dev = class_find_device_by_of_node(leds_class, led_node);
of_node_put(led_node);
+ put_device(led_dev);
return led_module_get(led_dev);
}