diff options
author | Mark Brown <broonie@kernel.org> | 2021-03-16 17:55:39 +0000 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2021-03-16 17:55:39 +0000 |
commit | 081634599bb1f159415e4ff87567cd9a4b24124a (patch) | |
tree | 1c23bc450fbb3514564e6a7c8ba69031d6576582 /sound/soc | |
parent | 2e2bf6d479616a15c54c4e668558f61caffa4db4 (diff) | |
parent | 97f53046d746bef513d5fbaac53eedb011968407 (diff) | |
download | linux-081634599bb1f159415e4ff87567cd9a4b24124a.tar.bz2 |
Merge series "ASoC: SOF: debug: cleanups" from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:
cleanups of allocation and error handling
Guennadi Liakhovetski (3):
ASoC: SOF: fix debugfs initialisation error handling
ASoC: SOF: only allocate debugfs cache buffers for IPC flood entries
ASoC: SOF: remove superfluous NULL check in debugfs read
sound/soc/sof/core.c | 5 +++--
sound/soc/sof/debug.c | 21 +++++++++++----------
2 files changed, 14 insertions(+), 12 deletions(-)
--
2.25.1
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/sof/core.c | 5 | ||||
-rw-r--r-- | sound/soc/sof/debug.c | 21 |
2 files changed, 14 insertions, 12 deletions
diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c index 6d8f7d9fd192..495295a34c3a 100644 --- a/sound/soc/sof/core.c +++ b/sound/soc/sof/core.c @@ -154,7 +154,7 @@ static int sof_probe_continue(struct snd_sof_dev *sdev) if (ret < 0) { dev_err(sdev->dev, "error: failed to get machine info %d\n", ret); - goto dbg_err; + goto dsp_err; } /* set up platform component driver */ @@ -257,8 +257,9 @@ fw_run_err: fw_load_err: snd_sof_ipc_free(sdev); ipc_err: - snd_sof_free_debug(sdev); dbg_err: + snd_sof_free_debug(sdev); +dsp_err: snd_sof_remove(sdev); /* all resources freed, update state to match */ diff --git a/sound/soc/sof/debug.c b/sound/soc/sof/debug.c index 715a374b33cf..a51a928ea40a 100644 --- a/sound/soc/sof/debug.c +++ b/sound/soc/sof/debug.c @@ -451,8 +451,7 @@ static ssize_t sof_dfsentry_read(struct file *file, char __user *buffer, dentry = file->f_path.dentry; if ((!strcmp(dentry->d_name.name, "ipc_flood_count") || - !strcmp(dentry->d_name.name, "ipc_flood_duration_ms")) && - dfse->cache_buf) { + !strcmp(dentry->d_name.name, "ipc_flood_duration_ms"))) { if (*ppos) return 0; @@ -609,14 +608,16 @@ int snd_sof_debugfs_buf_item(struct snd_sof_dev *sdev, dfse->sdev = sdev; #if IS_ENABLED(CONFIG_SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST) - /* - * cache_buf is unused for SOF_DFSENTRY_TYPE_BUF debugfs entries. - * So, use it to save the results of the last IPC flood test. - */ - dfse->cache_buf = devm_kzalloc(sdev->dev, IPC_FLOOD_TEST_RESULT_LEN, - GFP_KERNEL); - if (!dfse->cache_buf) - return -ENOMEM; + if (!strncmp(name, "ipc_flood", strlen("ipc_flood"))) { + /* + * cache_buf is unused for SOF_DFSENTRY_TYPE_BUF debugfs entries. + * So, use it to save the results of the last IPC flood test. + */ + dfse->cache_buf = devm_kzalloc(sdev->dev, IPC_FLOOD_TEST_RESULT_LEN, + GFP_KERNEL); + if (!dfse->cache_buf) + return -ENOMEM; + } #endif debugfs_create_file(name, mode, sdev->debugfs_root, dfse, |