Lines Matching defs:iov

707 	/* points to an allocated iov, if NULL we use fast_iov instead */
3247 static ssize_t io_compat_import(struct io_kiocb *req, struct iovec *iov,
3267 iov[0].iov_base = buf;
3268 iov[0].iov_len = (compat_size_t) len;
3273 static ssize_t __io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov,
3280 if (copy_from_user(iov, uiov, sizeof(*uiov)))
3283 len = iov[0].iov_len;
3289 iov[0].iov_base = buf;
3290 iov[0].iov_len = len;
3294 static ssize_t io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov,
3301 iov[0].iov_base = u64_to_user_ptr(kbuf->addr);
3302 iov[0].iov_len = kbuf->len;
3310 return io_compat_import(req, iov, needs_lock);
3313 return __io_iov_buffer_select(req, iov, needs_lock);
3440 rw->iter.iov = rw->fast_iov;
3441 if (iter->iov != fast_iov) {
3442 iov_off = iter->iov - fast_iov;
3443 rw->iter.iov += iov_off;
3485 struct iovec *iov = iorw->fast_iov;
3491 ret = io_import_iovec(rw, req, &iov, &iorw->iter, false);
3495 if (iov) {
3496 iorw->free_iovec = iov;
4742 size_t fast_idx = kmsg->msg.msg_iter.iov - kmsg->fast_iov;
4743 async_msg->msg.msg_iter.iov = &async_msg->fast_iov[fast_idx];
4858 struct iovec iov;
4868 ret = import_single_range(WRITE, sr->buf, sr->len, &iov, &msg.msg_iter);
5129 struct iovec iov;
5146 ret = import_single_range(READ, buf, sr->len, &iov, &msg.msg_iter);
9047 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
9058 if (!iov->iov_base) {
9063 ubuf = (unsigned long) iov->iov_base;
9064 end = (ubuf + iov->iov_len + PAGE_SIZE - 1) >> PAGE_SHIFT;
9125 size = iov->iov_len;
9138 imu->ubuf_end = ubuf + iov->iov_len;
9156 static int io_buffer_validate(struct iovec *iov)
9158 unsigned long tmp, acct_len = iov->iov_len + (PAGE_SIZE - 1);
9165 if (!iov->iov_base)
9166 return iov->iov_len ? -EFAULT : 0;
9167 if (!iov->iov_len)
9171 if (iov->iov_len > SZ_1G)
9174 if (check_add_overflow((unsigned long)iov->iov_base, acct_len, &tmp))
9186 struct iovec iov;
9205 ret = io_copy_iov(ctx, &iov, arg, i);
9208 ret = io_buffer_validate(&iov);
9211 if (!iov.iov_base && *io_get_tag_slot(data, i)) {
9216 ret = io_sqe_buffer_register(ctx, &iov, &ctx->user_bufs[i],
9237 struct iovec iov, __user *iovs = u64_to_user_ptr(up->data);
9253 err = io_copy_iov(ctx, &iov, iovs, done);
9260 err = io_buffer_validate(&iov);
9263 if (!iov.iov_base && tag) {
9267 err = io_sqe_buffer_register(ctx, &iov, &imu, &last_hpage);