ASoC: SOF: fix debugfs initialisation error handling

If debugfs initialisation fails partially in sof_probe_continue() some
debugfs files and the root directory might have been created
successfully. They have to be cleaned up if some of them failed too.

Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Xiuli Pan <xiulipan@outlook.com>
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210315163932.18663-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Guennadi Liakhovetski 2021-03-15 11:39:30 -05:00 committed by Mark Brown
parent 54d796b86e
commit 11fd6d8e09
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -154,7 +154,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev)
if (ret < 0) { if (ret < 0) {
dev_err(sdev->dev, "error: failed to get machine info %d\n", dev_err(sdev->dev, "error: failed to get machine info %d\n",
ret); ret);
goto dbg_err; goto dsp_err;
} }
/* set up platform component driver */ /* set up platform component driver */
@ -257,8 +257,9 @@ fw_run_err:
fw_load_err: fw_load_err:
snd_sof_ipc_free(sdev); snd_sof_ipc_free(sdev);
ipc_err: ipc_err:
snd_sof_free_debug(sdev);
dbg_err: dbg_err:
snd_sof_free_debug(sdev);
dsp_err:
snd_sof_remove(sdev); snd_sof_remove(sdev);
/* all resources freed, update state to match */ /* all resources freed, update state to match */