Lines Matching refs:zc
1188 bool zc = false; in tcp_sendmsg_locked() local
1201 zc = sk->sk_route_caps & NETIF_F_SG; in tcp_sendmsg_locked()
1202 if (!zc) in tcp_sendmsg_locked()
1309 if (skb_availroom(skb) > 0 && !zc) { in tcp_sendmsg_locked()
1315 } else if (!zc) { in tcp_sendmsg_locked()
1741 struct tcp_zerocopy_receive *zc) in tcp_zerocopy_receive() argument
1743 unsigned long address = (unsigned long)zc->address; in tcp_zerocopy_receive()
1752 if (address & (PAGE_SIZE - 1) || address != zc->address) in tcp_zerocopy_receive()
1766 zc->length = min_t(unsigned long, zc->length, vma->vm_end - address); in tcp_zerocopy_receive()
1771 zc->length = min_t(u32, zc->length, inq); in tcp_zerocopy_receive()
1772 zc->length &= ~(PAGE_SIZE - 1); in tcp_zerocopy_receive()
1773 if (zc->length) { in tcp_zerocopy_receive()
1774 zap_page_range(vma, address, zc->length); in tcp_zerocopy_receive()
1775 zc->recv_skip_hint = 0; in tcp_zerocopy_receive()
1777 zc->recv_skip_hint = inq; in tcp_zerocopy_receive()
1780 while (length + PAGE_SIZE <= zc->length) { in tcp_zerocopy_receive()
1781 if (zc->recv_skip_hint < PAGE_SIZE) { in tcp_zerocopy_receive()
1789 zc->recv_skip_hint = skb->len - offset; in tcp_zerocopy_receive()
1802 int remaining = zc->recv_skip_hint; in tcp_zerocopy_receive()
1809 zc->recv_skip_hint -= remaining; in tcp_zerocopy_receive()
1818 zc->recv_skip_hint -= PAGE_SIZE; in tcp_zerocopy_receive()
1831 if (length == zc->length) in tcp_zerocopy_receive()
1832 zc->recv_skip_hint = 0; in tcp_zerocopy_receive()
1834 if (!zc->recv_skip_hint && sock_flag(sk, SOCK_DONE)) in tcp_zerocopy_receive()
1837 zc->length = length; in tcp_zerocopy_receive()
3654 struct tcp_zerocopy_receive zc; in do_tcp_getsockopt() local
3659 if (len != sizeof(zc)) in do_tcp_getsockopt()
3661 if (copy_from_user(&zc, optval, len)) in do_tcp_getsockopt()
3664 err = tcp_zerocopy_receive(sk, &zc); in do_tcp_getsockopt()
3666 if (!err && copy_to_user(optval, &zc, len)) in do_tcp_getsockopt()