bpf, tcp: correctly handle DONT_WAIT flags and timeo == 0
authorJohn Fastabend <john.fastabend@gmail.com>
Tue, 14 May 2019 04:42:03 +0000 (21:42 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Wed, 15 May 2019 23:36:13 +0000 (01:36 +0200)
commit5fa2ca7c4a3fc176f31b495e1a704862d8188b53
tree2f7430872ef925272582946476844d2d0bd3a61f
parent3d21b6525caeae45f08e2d3a07ddfdef64882b8b
bpf, tcp: correctly handle DONT_WAIT flags and timeo == 0

The tcp_bpf_wait_data() routine needs to check timeo != 0 before
calling sk_wait_event() otherwise we may see unexpected stalls
on receiver.

Arika did all the leg work here I just formatted, posted and ran
a few tests.

Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface")
Reported-by: Arika Chen <eaglesora@gmail.com>
Suggested-by: Arika Chen <eaglesora@gmail.com>
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
net/ipv4/tcp_bpf.c