Blob Blame History Raw
From da1afe8e6099980fe1e2fd7436dca284af9d3f29 Mon Sep 17 00:00:00 2001
From: Miaoqian Lin <linmq006@gmail.com>
Date: Tue, 20 Dec 2022 16:18:07 +0400
Subject: [PATCH] leds: led-core: Fix refcount leak in of_led_get()
Git-commit: da1afe8e6099980fe1e2fd7436dca284af9d3f29
Patch-mainline: v6.3-rc1
References: git-fixes

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
Acked-by: Takashi Iwai <tiwai@suse.de>

---
 drivers/leds/led-class.c |    1 +
 1 file changed, 1 insertion(+)

--- a/drivers/leds/led-class.c
+++ b/drivers/leds/led-class.c
@@ -235,6 +235,7 @@ struct led_classdev *of_led_get(struct d
 
 	led_dev = class_find_device_by_of_node(leds_class, led_node);
 	of_node_put(led_node);
+	put_device(led_dev);
 
 	if (!led_dev)
 		return ERR_PTR(-EPROBE_DEFER);