From: Eric Dumazet <eduma...@google.com> Date: Fri, 19 Apr 2019 16:02:03 -0700
> tcp sendmsg() and sendpage() normally advance skb->data_len > and skb->truesize by the payload added to an skb. > > But sendmsg(fd, ..., MSG_ZEROCOPY) has to account for whole pages, > even if a single byte of payload is used in the page. > > This means that we can not assume skb->truesize can be adjusted > by skb->data_len. We must instead overwrite its value. > > Otherwise skb->truesize is too big and can hit socket sndbuf limit, > especially if the skb is recycled multiple times :/ > > Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx") > Signed-off-by: Eric Dumazet <eduma...@google.com> Applied, thanks Eric.