From: Willem de Bruijn <will...@google.com> 1/4 is a small optimization follow-up to the earlier fix to skb_segment: check skb state once per skb, instead of once per frag. 2/4 makes behavior more consistent between standard and zerocopy send: set the PSH bit when hitting MAX_SKB_FRAGS. This helps GRO. 3/4 resolves a surprising inconsistency in notification: because small packets were not stored in frags, they would not set the copied error code over loopback. This change also optimizes the path by removing copying and making tso_fragment cheaper. 4/4 follows-up to 3/4 by no longer allocated now unused memory. this was actually already in RFC patches, but dropped as I pared down the patch set during revisions. Willem de Bruijn (4): skbuff: in skb_segment, call zerocopy functions once per nskb tcp: push full zerocopy packets tcp: place all zerocopy payload in frags tcp: do not allocate linear memory for zerocopy skbs
net/core/skbuff.c | 14 +++++++++----- net/ipv4/tcp.c | 24 +++++++++++++++--------- 2 files changed, 24 insertions(+), 14 deletions(-) -- 2.15.1.620.gb9897f4670-goog