Messages in this thread | | | Subject | Re: [PATCH v2 net-next 1/2] tcp: add TCP_ZEROCOPY_RECEIVE support for zerocopy receive | From | Ka-Cheong Poon <> | Date | Thu, 26 Apr 2018 21:40:14 +0800 |
| |
On 04/26/2018 05:43 AM, Eric Dumazet wrote: > When adding tcp mmap() implementation, I forgot that socket lock > had to be taken before current->mm->mmap_sem. syzbot eventually caught > the bug. > > Since we can not lock the socket in tcp mmap() handler we have to > split the operation in two phases. > > 1) mmap() on a tcp socket simply reserves VMA space, and nothing else. > This operation does not involve any TCP locking. > > 2) setsockopt(fd, IPPROTO_TCP, TCP_ZEROCOPY_RECEIVE, ...) implements > the transfert of pages from skbs to one VMA. > This operation only uses down_read(¤t->mm->mmap_sem) after > holding TCP lock, thus solving the lockdep issue.
A quick question. Is it a normal practice to return a result in setsockopt() given that the optval parameter is supposed to be a const void *?
-- K. Poon ka-cheong.poon@oracle.com
| |