Thread (3 messages) 3 messages, 2 authors, 2022-05-17

Re: [PATCH] Input: sparcspkr: Fix refcount leak in bbc_beep_probe

From: Miaoqian Lin <hidden>
Date: 2022-05-17 05:39:48
Also in: lkml

Hi, Dmitry

On 2022/5/17 6:08, Dmitry Torokhov wrote:
Hi 
On Mon, May 16, 2022 at 12:10:16PM +0400, Miaoqian Lin wrote:
quoted
of_find_node_by_path() calls of_find_node_opts_by_path(),
which returns a node pointer with refcount
incremented, we should use of_node_put() on it when done.
Add missing of_node_put() to avoid refcount leak.

Fixes: 9c1a5077fdca ("input: Rewrite sparcspkr device probing.")
Signed-off-by: Miaoqian Lin <redacted>
---
Thank you for the patch.
quoted
 drivers/input/misc/sparcspkr.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/input/misc/sparcspkr.c b/drivers/input/misc/sparcspkr.c
index fe43e5557ed7..6a86900aa1fb 100644
--- a/drivers/input/misc/sparcspkr.c
+++ b/drivers/input/misc/sparcspkr.c
@@ -206,11 +206,11 @@ static int bbc_beep_probe(struct platform_device *op)
 	info = &state->u.bbc;
 	info->clock_freq = of_getintprop_default(dp, "clock-frequency", 0);
 	if (!info->clock_freq)
-		goto out_free;
+		goto out_put;
 
 	info->regs = of_ioremap(&op->resource[0], 0, 6, "bbc beep");
 	if (!info->regs)
-		goto out_free;
+		goto out_put;
 
 	platform_set_drvdata(op, state);
 
@@ -218,11 +218,14 @@ static int bbc_beep_probe(struct platform_device *op)
 	if (err)
 		goto out_clear_drvdata;
 
+	of_node_put(dp);
+
We do not really need to keep node pointer for that long, how about the
version of your patch below?
Looks good to me.
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help