mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
net-zerocopy: Fast return if inq < PAGE_SIZE
Sometimes, we may call tcp receive zerocopy when inq is 0, or inq < PAGE_SIZE, in which case we cannot remap pages. In this case, simply return the appropriate hint for regular copying without taking mmap_sem. Signed-off-by: Arjun Roy <arjunroy@google.com> Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
98917cf0d6
commit
936ced4157
@ -1904,6 +1904,14 @@ static int tcp_zerocopy_receive(struct sock *sk,
|
||||
|
||||
sock_rps_record_flow(sk);
|
||||
|
||||
if (inq < PAGE_SIZE) {
|
||||
zc->length = 0;
|
||||
zc->recv_skip_hint = inq;
|
||||
if (!inq && sock_flag(sk, SOCK_DONE))
|
||||
return -EIO;
|
||||
return 0;
|
||||
}
|
||||
|
||||
mmap_read_lock(current->mm);
|
||||
|
||||
vma = find_vma(current->mm, address);
|
||||
|
Loading…
Reference in New Issue
Block a user