android_kernel_samsung_msm8976/net/ipv4
Neal Cardwell 3ed860661b tcp_yeah: don't set ssthresh below 2
[ Upstream commit 83d15e70c4d8909d722c0d64747d8fb42e38a48f ]

For tcp_yeah, use an ssthresh floor of 2, the same floor used by Reno
and CUBIC, per RFC 5681 (equation 4).

tcp_yeah_ssthresh() was sometimes returning a 0 or negative ssthresh
value if the intended reduction is as big or bigger than the current
cwnd. Congestion control modules should never return a zero or
negative ssthresh. A zero ssthresh generally results in a zero cwnd,
causing the connection to stall. A negative ssthresh value will be
interpreted as a u32 and will set a target cwnd for PRR near 4
billion.

Oleksandr Natalenko reported that a system using tcp_yeah with ECN
could see a warning about a prior_cwnd of 0 in
tcp_cwnd_reduction(). Testing verified that this was due to
tcp_yeah_ssthresh() misbehaving in this way.

Reported-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Signed-off-by: Neal Cardwell <ncardwell@google.com>
Signed-off-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-01-28 21:49:34 -08:00
..
netfilter netfilter: ipt_ULOG: fix info leaks 2014-07-06 18:54:15 -07:00
af_inet.c net: add validation for the socket syscall protocol argument 2016-01-22 19:47:55 -08:00
ah4.c
arp.c
cipso_ipv4.c
datagram.c ipv6: lock socket in ip6_datagram_connect() 2015-10-01 12:07:37 +02:00
devinet.c
esp4.c
fib_frontend.c
fib_lookup.h
fib_rules.c ipv4: Fix incorrect error code when adding an unreachable route 2014-12-06 15:05:46 -08:00
fib_semantics.c ipv4: fix nexthop attlen check in fib_nh_match 2014-11-14 08:47:53 -08:00
fib_trie.c
gre.c
icmp.c ipv4: icmp: Fix pMTU handling for rare case 2014-07-28 08:00:04 -07:00
igmp.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
inet_connection_sock.c
inet_diag.c inet_diag: fix possible overflow in inet_diag_dump_one_icsk() 2015-03-26 15:00:55 +01:00
inet_fragment.c
inet_hashtables.c
inet_lro.c
inet_timewait_sock.c
inetpeer.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
ip_forward.c ip_forward: Drop frames with attached skb->sk 2015-05-06 21:56:20 +02:00
ip_fragment.c inet: frags: fix defragmented packet's IP header for af_packet 2015-10-01 12:07:37 +02:00
ip_gre.c gre: don't allow to add the same tunnel twice 2014-05-30 21:52:14 -07:00
ip_input.c
ip_options.c ipv4: fix buffer overflow in ip_options_compile() 2014-07-28 08:00:06 -07:00
ip_output.c udp: only allow UFO for packets from SOCK_DGRAM sockets 2015-03-18 13:22:27 +01:00
ip_sockglue.c ip: zero sockaddr returned on error queue 2015-02-26 17:48:47 -08:00
ip_tunnel.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
ip_vti.c vti: don't allow to add the same tunnel twice 2014-05-30 21:52:15 -07:00
ipcomp.c
ipconfig.c
ipip.c ipip, sit: fix ipv4_{update_pmtu,redirect} calls 2014-06-26 15:12:38 -04:00
ipmr.c net: ipmr: fix static mfc/dev leaks on table destruction 2016-01-22 19:47:51 -08:00
Kconfig
Makefile
netfilter.c
ping.c ipv4: Missing sk_nulls_node_init() in ping_unhash(). 2015-05-13 05:15:41 -07:00
proc.c
protocol.c
raw.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
route.c ipv4: Avoid crashing in ip_error 2015-06-22 16:55:51 -07:00
syncookies.c
sysctl_net_ipv4.c
tcp.c tcp: Fix divide by zero when pushing during tcp-repair 2014-07-28 08:00:04 -07:00
tcp_bic.c
tcp_cong.c
tcp_cubic.c tcp_cubic: fix the range of delayed_ack 2014-05-30 21:52:16 -07:00
tcp_diag.c
tcp_fastopen.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c remove extra definitions of U32_MAX 2015-04-29 10:33:54 +02:00
tcp_input.c tcp: initialize tp->copied_seq in case of cross SYN connection 2016-01-22 19:47:51 -08:00
tcp_ipv4.c tcp: md5: fix lockdep annotation 2016-01-22 19:47:51 -08:00
tcp_lp.c
tcp_memcontrol.c
tcp_metrics.c
tcp_minisocks.c
tcp_output.c tcp: avoid looping in tcp_send_fin() 2015-05-06 21:56:20 +02:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c
tcp_vegas.c tcp: Fix integer-overflow in TCP vegas 2014-08-14 09:24:15 +08:00
tcp_vegas.h
tcp_veno.c tcp: Fix integer-overflows in TCP veno 2014-08-14 09:24:15 +08:00
tcp_westwood.c
tcp_yeah.c tcp_yeah: don't set ssthresh below 2 2016-01-28 21:49:34 -08:00
tunnel4.c
udp.c udp: fix behavior of wrong checksums 2015-06-22 16:55:51 -07:00
udp_diag.c udp_diag: Fix socket skipping within chain 2015-02-26 17:48:48 -08:00
udp_impl.h
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c inetpeer: get rid of ip_id_count 2014-08-14 09:24:15 +08:00
xfrm4_output.c
xfrm4_policy.c xfrm: Increase the garbage collector threshold 2015-07-03 19:48:09 -07:00
xfrm4_state.c
xfrm4_tunnel.c