aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/rxrpc/input.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/rxrpc/input.c b/net/rxrpc/input.c
index 1461d30583c9..21746f0f7ae0 100644
--- a/net/rxrpc/input.c
+++ b/net/rxrpc/input.c
@@ -57,7 +57,7 @@ static void rxrpc_congestion_management(struct rxrpc_call *call,
57 call->cong_ssthresh = max_t(unsigned int, 57 call->cong_ssthresh = max_t(unsigned int,
58 summary->flight_size / 2, 2); 58 summary->flight_size / 2, 2);
59 cwnd = 1; 59 cwnd = 1;
60 if (cwnd > call->cong_ssthresh && 60 if (cwnd >= call->cong_ssthresh &&
61 call->cong_mode == RXRPC_CALL_SLOW_START) { 61 call->cong_mode == RXRPC_CALL_SLOW_START) {
62 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE; 62 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE;
63 call->cong_tstamp = skb->tstamp; 63 call->cong_tstamp = skb->tstamp;
@@ -82,7 +82,7 @@ static void rxrpc_congestion_management(struct rxrpc_call *call,
82 goto packet_loss_detected; 82 goto packet_loss_detected;
83 if (summary->cumulative_acks > 0) 83 if (summary->cumulative_acks > 0)
84 cwnd += 1; 84 cwnd += 1;
85 if (cwnd > call->cong_ssthresh) { 85 if (cwnd >= call->cong_ssthresh) {
86 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE; 86 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE;
87 call->cong_tstamp = skb->tstamp; 87 call->cong_tstamp = skb->tstamp;
88 } 88 }
@@ -161,7 +161,7 @@ resume_normality:
161 call->cong_dup_acks = 0; 161 call->cong_dup_acks = 0;
162 call->cong_extra = 0; 162 call->cong_extra = 0;
163 call->cong_tstamp = skb->tstamp; 163 call->cong_tstamp = skb->tstamp;
164 if (cwnd <= call->cong_ssthresh) 164 if (cwnd < call->cong_ssthresh)
165 call->cong_mode = RXRPC_CALL_SLOW_START; 165 call->cong_mode = RXRPC_CALL_SLOW_START;
166 else 166 else
167 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE; 167 call->cong_mode = RXRPC_CALL_CONGEST_AVOIDANCE;