firmware: cs_dsp: Remove __free() from cs_dsp_debugfs_string_read()

Don't use __free(kfree) in cs_dsp_debugfs_string_read. Instead use
normal kfree() to cleanup.

The use of __free() can create new cleanup bugs that are difficult to spot
because the defective code is idiomatically correct regular C. This
function used the suspect declaration __free(kfree) = NULL;.

The __free(kfree) didn't really do anything here. The function can be
rearranged to avoid any need to return or goto within the code.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 3045e29d24 ("firmware: cs_dsp: Append \n to debugfs string during read")
Link: https://patch.msgid.link/20251202113425.413700-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Richard Fitzgerald 2025-12-02 11:34:25 +00:00 committed by Mark Brown
parent 69927c13d5
commit 7a9fa7fda9
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -375,18 +375,23 @@ static ssize_t cs_dsp_debugfs_string_read(struct cs_dsp *dsp,
size_t count, loff_t *ppos,
const char **pstr)
{
const char *str __free(kfree) = NULL;
const char *str;
ssize_t ret = 0;
scoped_guard(mutex, &dsp->pwr_lock) {
if (!*pstr)
return 0;
str = kasprintf(GFP_KERNEL, "%s\n", *pstr);
if (!str)
return -ENOMEM;
return simple_read_from_buffer(user_buf, count, ppos, str, strlen(str));
if (*pstr) {
str = kasprintf(GFP_KERNEL, "%s\n", *pstr);
if (str) {
ret = simple_read_from_buffer(user_buf, count,
ppos, str, strlen(str));
kfree(str);
} else {
ret = -ENOMEM;
}
}
}
return ret;
}
static ssize_t cs_dsp_debugfs_wmfw_read(struct file *file,