| From 37e97e6faeabda405d0c4319f8419dcc3da14b2b Mon Sep 17 00:00:00 2001 |
| From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| Date: Fri, 24 Jan 2020 15:36:20 -0600 |
| Subject: ASoC: SOF: core: free trace on errors |
| |
| From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> |
| |
| 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> |
| |
| --- |
| sound/soc/sof/core.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/sound/soc/sof/core.c |
| +++ b/sound/soc/sof/core.c |
| @@ -394,7 +394,7 @@ static int sof_probe_continue(struct snd |
| 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; |
| @@ -408,7 +408,7 @@ static int sof_probe_continue(struct snd |
| |
| 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", |
| @@ -420,6 +420,8 @@ static int sof_probe_continue(struct snd |
| 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: |
| @@ -437,6 +439,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: |