Lines Matching defs:iov
27 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
111 static int io_buffer_validate(struct iovec *iov)
113 unsigned long tmp, acct_len = iov->iov_len + (PAGE_SIZE - 1);
120 if (!iov->iov_base)
121 return iov->iov_len ? -EFAULT : 0;
122 if (!iov->iov_len)
126 if (iov->iov_len > SZ_1G)
129 if (check_add_overflow((unsigned long)iov->iov_base, acct_len, &tmp))
424 struct iovec iov, __user *iovs = u64_to_user_ptr(up->data);
438 err = io_copy_iov(ctx, &iov, iovs, done);
445 err = io_buffer_validate(&iov);
448 if (!iov.iov_base && tag) {
452 err = io_sqe_buffer_register(ctx, &iov, &imu, &last_hpage);
914 static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov,
926 if (!iov->iov_base)
930 pages = io_pin_pages((unsigned long) iov->iov_base, iov->iov_len,
974 off = (unsigned long) iov->iov_base & ~PAGE_MASK;
975 size = iov->iov_len;
977 imu->ubuf = (unsigned long) iov->iov_base;
978 imu->ubuf_end = imu->ubuf + iov->iov_len;
1014 struct iovec iov;
1033 ret = io_copy_iov(ctx, &iov, arg, i);
1036 ret = io_buffer_validate(&iov);
1040 memset(&iov, 0, sizeof(iov));
1043 if (!iov.iov_base && *io_get_tag_slot(data, i)) {
1048 ret = io_sqe_buffer_register(ctx, &iov, &ctx->user_bufs[i],