From 5b43c9005d3ce7f1ba3a200c2d80c7323317501b Mon Sep 17 00:00:00 2001 From: Bard liao Date: Tue, 25 Sep 2018 09:20:05 +0000 Subject: [PATCH 1/3] Revert "ASoC: SOF: use devm_kfree" This reverts commit 108d9cf3daec51bfd01211a7e9585013131f612a. Signed-off-by: Bard liao --- sound/soc/sof/topology.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index 976b01c3e8fae0..ad41a571b918b5 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -2499,7 +2499,7 @@ void snd_sof_free_topology(struct snd_sof_dev *sdev) /* free sroute and its private data */ kfree(sroute->private); - devm_kfree(sdev->dev, sroute); + kfree(sroute); } ret = snd_soc_tplg_component_remove(sdev->component, From 568d9c167549d817947da116ffa18550444d81af Mon Sep 17 00:00:00 2001 From: Bard liao Date: Tue, 25 Sep 2018 09:20:57 +0000 Subject: [PATCH 2/3] Revert "ASoC: SOF: use devm_kzalloc" This reverts commit 801d1765db4eec9acaaeb58edc20c64c91c2f20a. Signed-off-by: Bard liao --- sound/soc/sof/topology.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index ad41a571b918b5..6e1be4513e7df9 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -2208,14 +2208,15 @@ static int sof_route_load(struct snd_soc_component *scomp, int index, int ret = 0; /* allocate memory for sroute and connect */ - sroute = devm_kzalloc(sdev->dev, sizeof(*sroute), GFP_KERNEL); + sroute = kzalloc(sizeof(*sroute), GFP_KERNEL); if (!sroute) return -ENOMEM; sroute->sdev = sdev; - connect = devm_kzalloc(sdev->dev, sizeof(*connect), GFP_KERNEL); + connect = kzalloc(sizeof(*connect), GFP_KERNEL); if (!connect) { + kfree(sroute); return -ENOMEM; } @@ -2328,7 +2329,11 @@ static int sof_route_load(struct snd_soc_component *scomp, int index, list_add(&sroute->list, &sdev->route_list); } + return ret; + err: + kfree(connect); + kfree(sroute); return ret; } From 89668a17e1fa54b86d49ebe92e8d4b7b3abc14f9 Mon Sep 17 00:00:00 2001 From: Bard liao Date: Tue, 25 Sep 2018 12:27:41 +0000 Subject: [PATCH 3/3] ASoC: SOF: topology: free unused item before return. sroute and connect are no longer used if we don't add it to the list. Signed-off-by: Bard liao --- sound/soc/sof/topology.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c index 6e1be4513e7df9..fcd4888ab8cf4c 100644 --- a/sound/soc/sof/topology.c +++ b/sound/soc/sof/topology.c @@ -2234,9 +2234,7 @@ static int sof_route_load(struct snd_soc_component *scomp, int index, spcm = snd_sof_find_spcm_name(sdev, (char *)route->source); if (spcm) { ret = spcm_bind(scomp, spcm, route->sink); - if (ret < 0) - goto err; - return 0; + goto err; } dev_err(sdev->dev, "error: source %s not found\n", @@ -2254,9 +2252,7 @@ static int sof_route_load(struct snd_soc_component *scomp, int index, spcm = snd_sof_find_spcm_name(sdev, (char *)route->sink); if (spcm) { ret = spcm_bind(scomp, spcm, route->source); - if (ret < 0) - goto err; - return 0; + goto err; } dev_err(sdev->dev, "error: sink %s not found\n", @@ -2327,9 +2323,9 @@ static int sof_route_load(struct snd_soc_component *scomp, int index, /* add route to route list */ list_add(&sroute->list, &sdev->route_list); - } - return ret; + return ret; + } err: kfree(connect);