@@ -309,6 +309,7 @@ void tcp_slow_start(struct tcp_sock *tp)
{
int cnt; /* increase in packets */
unsigned int delta = 0;
+ u32 new_snd_cwnd;
/* RFC3465: ABC Slow start
* Increase only after a full MSS of bytes is acked
@@ -337,7 +338,8 @@ void tcp_slow_start(struct tcp_sock *tp)
tp->snd_cwnd_cnt -= tp->snd_cwnd;
delta++;
}
- tp->snd_cwnd = min(tp->snd_cwnd + delta, tp->snd_cwnd_clamp);
+ new_snd_cwnd = min(tp->snd_cwnd + delta, tp->snd_cwnd_clamp);
+ tp->snd_cwnd = max(tp->snd_cwnd, new_snd_cwnd);
}
EXPORT_SYMBOL_GPL(tcp_slow_start);