syzbot reported a lockdep issue caused by tcp mmap() support.

I implemented Andy Lutomirski nice suggestions to resolve the
issue and increase scalability as well.

First patch is adding a new getsockopt() operation and changes mmap()
behavior.

Second patch changes tcp_mmap reference program.

v4: tcp mmap() support depends on CONFIG_MMU, as kbuild bot told us.

v3: change TCP_ZEROCOPY_RECEIVE to be a getsockopt() option
    instead of setsockopt(), feedback from Ka-Cheon Poon

v2: Added a missing page align of zc->length in tcp_zerocopy_receive()
    Properly clear zc->recv_skip_hint in case user request was completed.

Eric Dumazet (2):
  tcp: add TCP_ZEROCOPY_RECEIVE support for zerocopy receive
  selftests: net: tcp_mmap must use TCP_ZEROCOPY_RECEIVE

 include/uapi/linux/tcp.h               |   8 +
 net/ipv4/af_inet.c                     |   2 +
 net/ipv4/tcp.c                         | 196 +++++++++++++------------
 net/ipv6/af_inet6.c                    |   2 +
 tools/testing/selftests/net/tcp_mmap.c |  64 ++++----
 5 files changed, 154 insertions(+), 118 deletions(-)

-- 
2.17.0.441.gb46fe60e1d-goog

Reply via email to