Lines Matching refs:iov
163 const struct iovec *iov, unsigned long nr_segs, in iov_iter_init() argument
171 .__iov = iov, in iov_iter_init()
515 const struct iovec *iov, *end; in iov_iter_iovec_advance() local
522 for (iov = iter_iov(i), end = iov + i->nr_segs; iov < end; iov++) { in iov_iter_iovec_advance()
523 if (likely(size < iov->iov_len)) in iov_iter_iovec_advance()
525 size -= iov->iov_len; in iov_iter_iovec_advance()
528 i->nr_segs -= iov - iter_iov(i); in iov_iter_iovec_advance()
529 i->__iov = iov; in iov_iter_iovec_advance()
646 const struct iovec *iov = iter_iov(i); in iov_iter_revert() local
648 size_t n = (--iov)->iov_len; in iov_iter_revert()
651 i->__iov = iov; in iov_iter_revert()
793 const struct iovec *iov = iter_iov(i); in iov_iter_aligned_iovec() local
798 size_t len = iov->iov_len - skip; in iov_iter_aligned_iovec()
804 if ((unsigned long)(iov->iov_base + skip) & addr_mask) in iov_iter_aligned_iovec()
807 iov++; in iov_iter_aligned_iovec()
887 const struct iovec *iov = iter_iov(i); in iov_iter_alignment_iovec() local
893 size_t len = iov->iov_len - skip; in iov_iter_alignment_iovec()
895 res |= (unsigned long)iov->iov_base + skip; in iov_iter_alignment_iovec()
901 iov++; in iov_iter_alignment_iovec()
968 const struct iovec *iov = iter_iov(i) + k; in iov_iter_gap_alignment() local
969 if (iov->iov_len) { in iov_iter_gap_alignment()
970 unsigned long base = (unsigned long)iov->iov_base; in iov_iter_gap_alignment()
973 v = base + iov->iov_len; in iov_iter_gap_alignment()
974 if (size <= iov->iov_len) in iov_iter_gap_alignment()
976 size -= iov->iov_len; in iov_iter_gap_alignment()
1121 const struct iovec *iov = iter_iov(i) + k; in first_iovec_segment() local
1122 size_t len = iov->iov_len - skip; in first_iovec_segment()
1128 return (unsigned long)iov->iov_base + skip; in first_iovec_segment()
1321 static __noclone int copy_compat_iovec_from_user(struct iovec *iov, in copy_compat_iovec_from_user() argument
1344 iov[i].iov_base = compat_ptr(buf); in copy_compat_iovec_from_user()
1345 iov[i].iov_len = len; in copy_compat_iovec_from_user()
1354 static __noclone int copy_iovec_from_user(struct iovec *iov, in copy_iovec_from_user() argument
1374 iov->iov_base = buf; in copy_iovec_from_user()
1375 iov->iov_len = len; in copy_iovec_from_user()
1377 uiov++; iov++; in copy_iovec_from_user()
1390 struct iovec *iov = fast_iov; in iovec_from_user() local
1399 return iov; in iovec_from_user()
1403 iov = kmalloc_array(nr_segs, sizeof(struct iovec), GFP_KERNEL); in iovec_from_user()
1404 if (!iov) in iovec_from_user()
1409 ret = copy_compat_iovec_from_user(iov, uvec, nr_segs); in iovec_from_user()
1411 ret = copy_iovec_from_user(iov, uvec, nr_segs); in iovec_from_user()
1413 if (iov != fast_iov) in iovec_from_user()
1414 kfree(iov); in iovec_from_user()
1418 return iov; in iovec_from_user()
1428 struct iovec *iov = *iovp; in __import_iovec_ubuf() local
1432 ret = copy_compat_iovec_from_user(iov, uvec, 1); in __import_iovec_ubuf()
1434 ret = copy_iovec_from_user(iov, uvec, 1); in __import_iovec_ubuf()
1438 ret = import_ubuf(type, iov->iov_base, iov->iov_len, i); in __import_iovec_ubuf()
1451 struct iovec *iov; in __import_iovec() local
1456 iov = iovec_from_user(uvec, nr_segs, fast_segs, *iovp, compat); in __import_iovec()
1457 if (IS_ERR(iov)) { in __import_iovec()
1459 return PTR_ERR(iov); in __import_iovec()
1471 ssize_t len = (ssize_t)iov[seg].iov_len; in __import_iovec()
1473 if (!access_ok(iov[seg].iov_base, len)) { in __import_iovec()
1474 if (iov != *iovp) in __import_iovec()
1475 kfree(iov); in __import_iovec()
1482 iov[seg].iov_len = len; in __import_iovec()
1487 iov_iter_init(i, type, iov, nr_segs, total_len); in __import_iovec()
1488 if (iov == *iovp) in __import_iovec()
1491 *iovp = iov; in __import_iovec()