[fsi] WRITE is "data source", not destination...
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 15 Sep 2022 22:59:12 +0000 (18:59 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 25 Nov 2022 18:01:20 +0000 (13:01 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/fsi/fsi-sbefifo.c

index 5f93a53846aad78cc5149429c449dba2af638192..efd4942aa04356d38b9c0edbcd338516a159bbb5 100644 (file)
@@ -659,7 +659,7 @@ static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo)
        }
         ffdc_iov.iov_base = ffdc;
        ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE;
-        iov_iter_kvec(&ffdc_iter, WRITE, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
+        iov_iter_kvec(&ffdc_iter, READ, &ffdc_iov, 1, SBEFIFO_MAX_FFDC_SIZE);
        cmd[0] = cpu_to_be32(2);
        cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC);
        rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter);
@@ -756,7 +756,7 @@ int sbefifo_submit(struct device *dev, const __be32 *command, size_t cmd_len,
        rbytes = (*resp_len) * sizeof(__be32);
        resp_iov.iov_base = response;
        resp_iov.iov_len = rbytes;
-        iov_iter_kvec(&resp_iter, WRITE, &resp_iov, 1, rbytes);
+        iov_iter_kvec(&resp_iter, READ, &resp_iov, 1, rbytes);
 
        /* Perform the command */
        rc = mutex_lock_interruptible(&sbefifo->lock);
@@ -839,7 +839,7 @@ static ssize_t sbefifo_user_read(struct file *file, char __user *buf,
        /* Prepare iov iterator */
        resp_iov.iov_base = buf;
        resp_iov.iov_len = len;
-       iov_iter_init(&resp_iter, WRITE, &resp_iov, 1, len);
+       iov_iter_init(&resp_iter, READ, &resp_iov, 1, len);
 
        /* Perform the command */
        rc = mutex_lock_interruptible(&sbefifo->lock);