diff options
author | Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> | 2020-01-24 15:36:20 -0600 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2020-01-27 17:51:50 +0000 |
commit | 37e97e6faeabda405d0c4319f8419dcc3da14b2b (patch) | |
tree | bd5383376c641c59be4430d6797d3b43274a332e /sound/soc/sof/core.c | |
parent | 4f7f9564a8937f38f97e8624cb7d6a28ee35f7cb (diff) | |
download | lwn-37e97e6faeabda405d0c4319f8419dcc3da14b2b.tar.gz lwn-37e97e6faeabda405d0c4319f8419dcc3da14b2b.zip |
ASoC: SOF: core: free trace on errors
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
Diffstat (limited to 'sound/soc/sof/core.c')
-rw-r--r-- | sound/soc/sof/core.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c index 44f9c04d54aa..f517ab448a1d 100644 --- a/sound/soc/sof/core.c +++ b/sound/soc/sof/core.c @@ -224,12 +224,12 @@ 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; } ret = snd_sof_machine_register(sdev, plat_data); if (ret < 0) - goto fw_run_err; + goto fw_trace_err; /* * Some platforms in SOF, ex: BYT, may not have their platform PM @@ -245,6 +245,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: @@ -262,6 +264,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: |