From: Soheil Hassas Yeganeh <soheil.k...@gmail.com> Date: Thu, 10 Oct 2019 23:27:02 -0400
> From: Soheil Hassas Yeganeh <soh...@google.com> > > tcp_zerocopy_receive() rounds down the zc->length a multiple of > PAGE_SIZE. This results in two issues: > - tcp_zerocopy_receive sets recv_skip_hint to the length of the > receive queue if the zc->length input is smaller than the > PAGE_SIZE, even though the data in receive queue could be > zerocopied. > - tcp_zerocopy_receive would set recv_skip_hint of 0, in cases > where we have a little bit of data after the perfectly-sized > packets. > > To fix these issues, do not store the rounded down value in > zc->length. Round down the length passed to zap_page_range(), > and return min(inq, zc->length) when the zap_range is 0. > > Signed-off-by: Soheil Hassas Yeganeh <soh...@google.com> > Signed-off-by: Eric Dumazet <eduma...@google.com> Applied, thank you.