ASoC: SOF: Clean up sof_ipc_flood_dfs_write()

This function doesn't support partial writes so using
simple_write_to_buffer() doesn't really make sense.  It's better to
just use copy_from_user().

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://msgid.link/r/a35dded2-392b-4ccb-9dbb-d782ac9b6547@moroto.mountain
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
Dan Carpenter 2024-04-04 10:34:53 +03:00 committed by Mark Brown
parent 84ae7d9cfa
commit 2cfa0eea26
No known key found for this signature in database
GPG Key ID: 24D68B725D5487D0

View File

@ -160,15 +160,20 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
unsigned long ipc_count = 0;
struct dentry *dentry;
int err;
size_t size;
char *string;
int ret;
if (*ppos != 0)
return -EINVAL;
string = kzalloc(count + 1, GFP_KERNEL);
if (!string)
return -ENOMEM;
size = simple_write_to_buffer(string, count, ppos, buffer, count);
if (copy_from_user(string, buffer, count)) {
ret = -EFAULT;
goto out;
}
/*
* write op is only supported for ipc_flood_count or
@ -198,7 +203,7 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
/* limit max duration/ipc count for flood test */
if (flood_duration_test) {
if (!ipc_duration_ms) {
ret = size;
ret = count;
goto out;
}
@ -207,7 +212,7 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
ipc_duration_ms = MAX_IPC_FLOOD_DURATION_MS;
} else {
if (!ipc_count) {
ret = size;
ret = count;
goto out;
}
@ -231,9 +236,9 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err);
/* return size if test is successful */
/* return count if test is successful */
if (ret >= 0)
ret = size;
ret = count;
out:
kfree(string);
return ret;