Soheil Hassas Yeganeh
867f816bad
tcp: limit sk_rcvlowat by the maximum receive buffer
...
The user-provided value to setsockopt(SO_RCVLOWAT) can be
larger than the maximum possible receive buffer. Such values
mute POLLIN signals on the socket which can stall progress
on the socket.
Limit the user-provided value to half of the maximum receive
buffer, i.e., half of sk_rcvbuf when the receive buffer size
is set by the user, or otherwise half of sysctl_tcp_rmem[2].
Fixes: d1361840f8 ("tcp: fix SO_RCVLOWAT and RCVBUF autotuning")
Signed-off-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Neal Cardwell <ncardwell@google.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-06-10 14:12:50 -07:00
..
bpfilter
net: bpfilter: make function bpfilter_mbox_request() static
2018-05-29 09:51:44 -04:00
netfilter
netfilter: Libify xt_TPROXY
2018-06-03 00:02:05 +02:00
af_inet.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
ah4.c
arp.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
cipso_ipv4.c
datagram.c
devinet.c
net/ipv4: Add support for specifying metric of connected routes
2018-05-29 10:12:45 -04:00
esp4.c
esp4_offload.c
fib_frontend.c
net/ipv4: Add support for specifying metric of connected routes
2018-05-29 10:12:45 -04:00
fib_lookup.h
fib_notifier.c
fib_rules.c
net: fib_rules: add extack support
2018-04-23 10:21:24 -04:00
fib_semantics.c
net: metrics: add proper netlink validation
2018-06-05 12:29:43 -04:00
fib_trie.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
fou.c
gre_demux.c
gre_offload.c
icmp.c
igmp.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
inet_connection_sock.c
net: ipv4: remove define INET_CSK_DEBUG and unnecessary EXPORT_SYMBOL
2018-05-10 17:43:55 -04:00
inet_diag.c
inet_fragment.c
inet_hashtables.c
inet_timewait_sock.c
soreuseport: initialise timewait reuseport field
2018-04-07 22:32:32 -04:00
inetpeer.c
inetpeer: fix uninit-value in inet_getpeer
2018-04-09 10:57:35 -04:00
ip_forward.c
ip_fragment.c
inet: frags: fix ip6frag_low_thresh boundary
2018-04-04 12:04:59 -04:00
ip_gre.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-05-21 16:01:54 -04:00
ip_input.c
ip_options.c
ip_output.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-05-21 16:01:54 -04:00
ip_sockglue.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-05-26 19:46:15 -04:00
ip_tunnel.c
ip_tunnel: Fix name string concatenate in __ip_tunnel_create()
2018-06-07 16:27:16 -04:00
ip_tunnel_core.c
net/ipv4: Update ip_tunnel_metadata_cnt static key to modern api
2018-05-10 15:13:33 -04:00
ip_vti.c
ipcomp.c
ipconfig.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
ipip.c
ipmr.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
ipmr_base.c
ipmr: fix error path when ipmr_new_table fails
2018-06-05 12:26:41 -04:00
Kconfig
Makefile
ipv4: support sport, dport and ip_proto in RTM_GETROUTE
2018-05-23 15:14:12 -04:00
metrics.c
net: metrics: add proper netlink validation
2018-06-05 12:29:43 -04:00
netfilter.c
netlink.c
ipv4: support sport, dport and ip_proto in RTM_GETROUTE
2018-05-23 15:14:12 -04:00
ping.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
proc.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
protocol.c
raw.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
raw_diag.c
route.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
syncookies.c
sysctl_net_ipv4.c
net-tcp: extend tcp_tw_reuse sysctl to enable loopback only optimization
2018-06-04 17:13:35 -04:00
tcp.c
tcp: limit sk_rcvlowat by the maximum receive buffer
2018-06-10 14:12:50 -07:00
tcp_bbr.c
tcp_bbr: fix to zero idle_restart only upon S/ACKed data
2018-05-02 11:12:32 -04:00
tcp_bic.c
tcp_cdg.c
tcp_cong.c
tcp_cubic.c
tcp_dctcp.c
tcp_diag.c
tcp_fastopen.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c
tcp: refactor tcp_ecn_check_ce to remove sk type cast
2018-06-05 10:09:27 -04:00
tcp_ipv4.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-06-06 18:39:49 -07:00
tcp_lp.c
tcp_metrics.c
tcp_minisocks.c
net-tcp: remove useless tw_timeout field
2018-06-05 10:45:24 -04:00
tcp_nv.c
tcp_offload.c
tcp_output.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-05-21 16:01:54 -04:00
tcp_rate.c
tcp_recovery.c
tcp: tcp_rack_reo_wnd() can be static
2018-05-18 13:28:40 -04:00
tcp_scalable.c
tcp_timer.c
tcp: add SACK compression
2018-05-18 11:40:27 -04:00
tcp_ulp.c
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c
tunnel4.c
udp.c
udp: fix rx queue len reported by diag and proc interface
2018-06-08 19:55:15 -04:00
udp_diag.c
udp: fix rx queue len reported by diag and proc interface
2018-06-08 19:55:15 -04:00
udp_impl.h
udp_offload.c
udp: avoid refcount_t saturation in __udp_gso_segment()
2018-05-11 12:29:42 -04:00
udp_tunnel.c
udplite.c
proc: introduce proc_create_net{,_data}
2018-05-16 07:24:30 +02:00
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_protocol.c
xfrm4_state.c
xfrm4_tunnel.c