Skip to content

Commit de74ec7

Browse files
morimotobroonie
authored andcommitted
ASoC: simple-card-utils: Don't use __free(device_node) at graph_util_parse_dai()
commit 419d191 ("ASoC: simple-card-utils: use __free(device_node) for device node") uses __free(device_node) for dlc->of_node, but we need to keep it while driver is in use. Don't use __free(device_node) in graph_util_parse_dai(). Fixes: 419d191 ("ASoC: simple-card-utils: use __free(device_node) for device node") Reported-by: Thuan Nguyen <[email protected]> Reported-by: Detlev Casanova <[email protected]> Signed-off-by: Kuninori Morimoto <[email protected]> Tested-by: Thuan Nguyen <[email protected]> Tested-by: Detlev Casanova <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 658fb7f commit de74ec7

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

sound/soc/generic/simple-card-utils.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,14 +1077,15 @@ static int graph_get_dai_id(struct device_node *ep)
10771077
int graph_util_parse_dai(struct device *dev, struct device_node *ep,
10781078
struct snd_soc_dai_link_component *dlc, int *is_single_link)
10791079
{
1080+
struct device_node *node;
10801081
struct of_phandle_args args = {};
10811082
struct snd_soc_dai *dai;
10821083
int ret;
10831084

10841085
if (!ep)
10851086
return 0;
10861087

1087-
struct device_node *node __free(device_node) = of_graph_get_port_parent(ep);
1088+
node = of_graph_get_port_parent(ep);
10881089

10891090
/*
10901091
* Try to find from DAI node
@@ -1126,8 +1127,10 @@ int graph_util_parse_dai(struct device *dev, struct device_node *ep,
11261127
* if he unbinded CPU or Codec.
11271128
*/
11281129
ret = snd_soc_get_dlc(&args, dlc);
1129-
if (ret < 0)
1130+
if (ret < 0) {
1131+
of_node_put(node);
11301132
return ret;
1133+
}
11311134

11321135
parse_dai_end:
11331136
if (is_single_link)

0 commit comments

Comments
 (0)