Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 111856c7 authored by Willem de Bruijn's avatar Willem de Bruijn Committed by David S. Miller
Browse files

tcp: push full zerocopy packets



Skbs that reach MAX_SKB_FRAGS cannot be extended further. Do the
same for zerocopy frags as non-zerocopy frags and set the PSH bit.
This improves GRO assembly.

Suggested-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bf5c25d6
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -1371,8 +1371,10 @@ int tcp_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t size)
			pfrag->offset += copy;
			pfrag->offset += copy;
		} else {
		} else {
			err = skb_zerocopy_iter_stream(sk, skb, msg, copy, uarg);
			err = skb_zerocopy_iter_stream(sk, skb, msg, copy, uarg);
			if (err == -EMSGSIZE || err == -EEXIST)
			if (err == -EMSGSIZE || err == -EEXIST) {
				tcp_mark_push(tp, skb);
				goto new_segment;
				goto new_segment;
			}
			if (err < 0)
			if (err < 0)
				goto do_error;
				goto do_error;
			copy = err;
			copy = err;