[fsi] WRITE is "data source", not destination...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2022-09-15 18:59:12 -04:00
parent 0e1e4a2238
commit 974c36fb82

View file

@ -659,7 +659,7 @@ static void sbefifo_collect_async_ffdc(struct sbefifo *sbefifo)
} }
ffdc_iov.iov_base = ffdc; ffdc_iov.iov_base = ffdc;
ffdc_iov.iov_len = SBEFIFO_MAX_FFDC_SIZE; 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[0] = cpu_to_be32(2);
cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC); cmd[1] = cpu_to_be32(SBEFIFO_CMD_GET_SBE_FFDC);
rc = sbefifo_do_command(sbefifo, cmd, 2, &ffdc_iter); 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); rbytes = (*resp_len) * sizeof(__be32);
resp_iov.iov_base = response; resp_iov.iov_base = response;
resp_iov.iov_len = rbytes; 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 */ /* Perform the command */
rc = mutex_lock_interruptible(&sbefifo->lock); 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 */ /* Prepare iov iterator */
resp_iov.iov_base = buf; resp_iov.iov_base = buf;
resp_iov.iov_len = len; 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 */ /* Perform the command */
rc = mutex_lock_interruptible(&sbefifo->lock); rc = mutex_lock_interruptible(&sbefifo->lock);