summaryrefslogtreecommitdiff
path: root/sound/soc/sof/core.c
diff options
context:
space:
mode:
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>2020-01-24 15:36:20 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-02-11 04:35:21 -0800
commit570a29b1f75bfa9c420a1a69d2a4d03dad278928 (patch)
tree671b0815c031b0bbbe9301390be1a5f86b7f8b5e /sound/soc/sof/core.c
parent84c9efd2f855e538854833510d0fe8bfa3362a65 (diff)
ASoC: SOF: core: free trace on errors
commit 37e97e6faeabda405d0c4319f8419dcc3da14b2b upstream. free_trace() is not called on probe errors, fix Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20200124213625.30186-3-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'sound/soc/sof/core.c')
-rw-r--r--sound/soc/sof/core.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
index 81f28f7ff1a0..075b80698477 100644
--- a/sound/soc/sof/core.c
+++ b/sound/soc/sof/core.c
@@ -368,7 +368,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
if (ret < 0) {
dev_err(sdev->dev,
"error: failed to register DSP DAI driver %d\n", ret);
- goto fw_run_err;
+ goto fw_trace_err;
}
drv_name = plat_data->machine->drv_name;
@@ -382,7 +382,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
if (IS_ERR(plat_data->pdev_mach)) {
ret = PTR_ERR(plat_data->pdev_mach);
- goto fw_run_err;
+ goto fw_trace_err;
}
dev_dbg(sdev->dev, "created machine %s\n",
@@ -394,6 +394,8 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
return 0;
#if !IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)
+fw_trace_err:
+ snd_sof_free_trace(sdev);
fw_run_err:
snd_sof_fw_unload(sdev);
fw_load_err:
@@ -411,6 +413,7 @@ dbg_err:
* snd_sof_device_remove() when the PCI/ACPI device is removed
*/
+fw_trace_err:
fw_run_err:
fw_load_err:
ipc_err: