|
@@ -2478,6 +2478,9 @@ static void tcp_cwnd_reduction(struct sock *sk, const int prior_unsacked,
|
|
int newly_acked_sacked = prior_unsacked -
|
|
int newly_acked_sacked = prior_unsacked -
|
|
(tp->packets_out - tp->sacked_out);
|
|
(tp->packets_out - tp->sacked_out);
|
|
|
|
|
|
|
|
+ if (newly_acked_sacked <= 0 || WARN_ON_ONCE(!tp->prior_cwnd))
|
|
|
|
+ return;
|
|
|
|
+
|
|
tp->prr_delivered += newly_acked_sacked;
|
|
tp->prr_delivered += newly_acked_sacked;
|
|
if (delta < 0) {
|
|
if (delta < 0) {
|
|
u64 dividend = (u64)tp->snd_ssthresh * tp->prr_delivered +
|
|
u64 dividend = (u64)tp->snd_ssthresh * tp->prr_delivered +
|