From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: linux-sound@vger.kernel.org
Subject: Re: [bug report] ASoC: audio-graph-card2: add Codec2Codec support
Date: Thu, 9 May 2024 00:13:41 +0000 [thread overview]
Message-ID: <87le4jall6.wl-kuninori.morimoto.gx@renesas.com> (raw)
In-Reply-To: <f930862e-9d30-4ea3-b3e7-b4b4f411f6d1@moroto.mountain>
Hi Dan
> Hello Kuninori Morimoto,
>
> Commit c3a15c92a67b ("ASoC: audio-graph-card2: add Codec2Codec
> support") from Oct 12, 2021 (linux-next), leads to the following
> Smatch static checker warning:
>
> sound/soc/generic/audio-graph-card2.c:1206 graph_count_c2c()
> warn: already decremented on line 1206 'lnk->kobj.kref.refcount.refs.counter'
>
> sound/soc/generic/audio-graph-card2.c
> 1194 static int graph_count_c2c(struct simple_util_priv *priv,
> 1195 struct device_node *lnk,
> 1196 struct link_info *li)
> 1197 {
> 1198 struct device_node *ports = of_get_parent(lnk);
> 1199 struct device_node *port0 = lnk;
> 1200 struct device_node *port1 = of_get_next_child(ports, lnk);
> ^^^
>
> This calls of_node_put() on lnk.
>
> 1201 struct device_node *ep0 = port_to_endpoint(port0);
> 1202 struct device_node *ep1 = port_to_endpoint(port1);
> 1203 struct device_node *codec0 = of_graph_get_remote_port(ep0);
> 1204 struct device_node *codec1 = of_graph_get_remote_port(ep1);
> 1205
> --> 1206 of_node_get(lnk);
>
> So this of_node_get() undoes the put. But if the reference count
> dropped to zero then this would be a use afer free.
Thank you for pointing it.
This "lnk" is used as "port0", and of_node_get(lnk) was for it,
but this function doesn't call of_node_put(port0).
So yes, indeed this of_node_get() is not needed.
Let's remove it.
Thank you for your help !!
Best regards
---
Renesas Electronics
Ph.D. Kuninori Morimoto
next prev parent reply other threads:[~2024-05-09 0:13 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-08 15:14 [bug report] ASoC: audio-graph-card2: add Codec2Codec support Dan Carpenter
2024-05-09 0:13 ` Kuninori Morimoto [this message]
2024-05-09 6:49 ` Dan Carpenter
2024-05-09 23:47 ` Kuninori Morimoto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87le4jall6.wl-kuninori.morimoto.gx@renesas.com \
--to=kuninori.morimoto.gx@renesas.com \
--cc=dan.carpenter@linaro.org \
--cc=linux-sound@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.