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

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.mountain


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 84ae7d9c
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -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;