[SRU][Focal][PATCH 2/4] ASoC: SOF: core: free trace on errors
Hui Wang
hui.wang at canonical.com
Fri Feb 21 09:00:41 UTC 2020
From: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
BugLink: https://bugs.launchpad.net/bugs/1861837
free_trace() is not called on probe errors, fix
Reviewed-by: Kai Vehmanen <kai.vehmanen at linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
Link: https://lore.kernel.org/r/20200124213625.30186-3-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie at kernel.org>
Cc: stable at vger.kernel.org
(backported from commit 37e97e6faeabda405d0c4319f8419dcc3da14b2b)
Signed-off-by: Hui Wang <hui.wang at canonical.com>
---
sound/soc/sof/core.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
index ab8d9e61cfb1..c4553a1e65df 100644
--- a/sound/soc/sof/core.c
+++ b/sound/soc/sof/core.c
@@ -414,7 +414,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;
@@ -428,7 +428,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",
@@ -440,6 +440,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:
@@ -457,6 +459,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
* snd_sof_device_remove() when the PCI/ACPI device is removed
*/
+fw_trace_err:
fw_run_err:
fw_load_err:
ipc_err:
--
2.17.1
More information about the kernel-team
mailing list