Commit 2cfa0eea authored by Dan Carpenter's avatar Dan Carpenter Committed by Mark Brown

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: default avatarDan Carpenter <dan.carpenter@linaro.org>
Acked-by: default avatarPeter Ujfalusi <peter.ujfalusi@linux.intel.com>
Link: https://msgid.link/r/a35dded2-392b-4ccb-9dbb-d782ac9b6547@moroto.mountainSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent 84ae7d9c
...@@ -160,15 +160,20 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf ...@@ -160,15 +160,20 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
unsigned long ipc_count = 0; unsigned long ipc_count = 0;
struct dentry *dentry; struct dentry *dentry;
int err; int err;
size_t size;
char *string; char *string;
int ret; int ret;
if (*ppos != 0)
return -EINVAL;
string = kzalloc(count + 1, GFP_KERNEL); string = kzalloc(count + 1, GFP_KERNEL);
if (!string) if (!string)
return -ENOMEM; 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 * 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 ...@@ -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 */ /* limit max duration/ipc count for flood test */
if (flood_duration_test) { if (flood_duration_test) {
if (!ipc_duration_ms) { if (!ipc_duration_ms) {
ret = size; ret = count;
goto out; goto out;
} }
...@@ -207,7 +212,7 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf ...@@ -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; ipc_duration_ms = MAX_IPC_FLOOD_DURATION_MS;
} else { } else {
if (!ipc_count) { if (!ipc_count) {
ret = size; ret = count;
goto out; goto out;
} }
...@@ -231,9 +236,9 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf ...@@ -231,9 +236,9 @@ static ssize_t sof_ipc_flood_dfs_write(struct file *file, const char __user *buf
if (err < 0) if (err < 0)
dev_err_ratelimited(dev, "debugfs write failed to idle %d\n", err); 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) if (ret >= 0)
ret = size; ret = count;
out: out:
kfree(string); kfree(string);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment