mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
ASoC: SOF: core: free trace on errors
commit 37e97e6fae 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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d0c914fbb3
commit
5f138f97c0
@@ -394,7 +394,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
|
|||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_err(sdev->dev,
|
dev_err(sdev->dev,
|
||||||
"error: failed to register DSP DAI driver %d\n", ret);
|
"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;
|
drv_name = plat_data->machine->drv_name;
|
||||||
@@ -408,7 +408,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
|
|||||||
|
|
||||||
if (IS_ERR(plat_data->pdev_mach)) {
|
if (IS_ERR(plat_data->pdev_mach)) {
|
||||||
ret = PTR_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",
|
dev_dbg(sdev->dev, "created machine %s\n",
|
||||||
@@ -420,6 +420,8 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
#if !IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)
|
#if !IS_ENABLED(CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE)
|
||||||
|
fw_trace_err:
|
||||||
|
snd_sof_free_trace(sdev);
|
||||||
fw_run_err:
|
fw_run_err:
|
||||||
snd_sof_fw_unload(sdev);
|
snd_sof_fw_unload(sdev);
|
||||||
fw_load_err:
|
fw_load_err:
|
||||||
@@ -437,6 +439,7 @@ dbg_err:
|
|||||||
* snd_sof_device_remove() when the PCI/ACPI device is removed
|
* snd_sof_device_remove() when the PCI/ACPI device is removed
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
fw_trace_err:
|
||||||
fw_run_err:
|
fw_run_err:
|
||||||
fw_load_err:
|
fw_load_err:
|
||||||
ipc_err:
|
ipc_err:
|
||||||
|
|||||||
Reference in New Issue
Block a user