Commit 017d9491 authored by Mark Brown's avatar Mark Brown

ASoC: pcm: Drop incorrect double/extra frees

The changes in "ASoC: pcm: free path list before exiting from error
conditions" actually introduced both double frees (in case where the
path list was allocated but empty) and frees of unallocated memory (in
cases where the error being handled was -ENOMEM.  Drop the commit for
now.

Fixes: e4ad1acc (ASoC: pcm: free path list before exiting from error conditions)
Reported-by: default avatarBen Hutchings <ben@decadent.org.uk>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
Cc: stable@vger.kernel.org
parent dcb99fd9
...@@ -1989,7 +1989,6 @@ int soc_dpcm_runtime_update(struct snd_soc_card *card) ...@@ -1989,7 +1989,6 @@ int soc_dpcm_runtime_update(struct snd_soc_card *card)
paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_PLAYBACK, &list); paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_PLAYBACK, &list);
if (paths < 0) { if (paths < 0) {
dpcm_path_put(&list);
dev_warn(fe->dev, "ASoC: %s no valid %s path\n", dev_warn(fe->dev, "ASoC: %s no valid %s path\n",
fe->dai_link->name, "playback"); fe->dai_link->name, "playback");
mutex_unlock(&card->mutex); mutex_unlock(&card->mutex);
...@@ -2019,7 +2018,6 @@ int soc_dpcm_runtime_update(struct snd_soc_card *card) ...@@ -2019,7 +2018,6 @@ int soc_dpcm_runtime_update(struct snd_soc_card *card)
paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_CAPTURE, &list); paths = dpcm_path_get(fe, SNDRV_PCM_STREAM_CAPTURE, &list);
if (paths < 0) { if (paths < 0) {
dpcm_path_put(&list);
dev_warn(fe->dev, "ASoC: %s no valid %s path\n", dev_warn(fe->dev, "ASoC: %s no valid %s path\n",
fe->dai_link->name, "capture"); fe->dai_link->name, "capture");
mutex_unlock(&card->mutex); mutex_unlock(&card->mutex);
...@@ -2084,7 +2082,6 @@ static int dpcm_fe_dai_open(struct snd_pcm_substream *fe_substream) ...@@ -2084,7 +2082,6 @@ static int dpcm_fe_dai_open(struct snd_pcm_substream *fe_substream)
fe->dpcm[stream].runtime = fe_substream->runtime; fe->dpcm[stream].runtime = fe_substream->runtime;
if (dpcm_path_get(fe, stream, &list) <= 0) { if (dpcm_path_get(fe, stream, &list) <= 0) {
dpcm_path_put(&list);
dev_dbg(fe->dev, "ASoC: %s no valid %s route\n", dev_dbg(fe->dev, "ASoC: %s no valid %s route\n",
fe->dai_link->name, stream ? "capture" : "playback"); fe->dai_link->name, stream ? "capture" : "playback");
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment