summaryrefslogtreecommitdiff
path: root/net/sctp
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2010-04-30 22:41:10 -0400
committerVlad Yasevich <vladislav.yasevich@hp.com>2010-04-30 22:41:10 -0400
commit65883371894be2631603d5d412f90f8c09290fef (patch)
treedbd95cdce0d32544428f26de68b2738a56a70764 /net/sctp
parentcf9b4812e18aab6f86ff998bd7425a9e823269c3 (diff)
downloadlinux-3.10-65883371894be2631603d5d412f90f8c09290fef.tar.gz
linux-3.10-65883371894be2631603d5d412f90f8c09290fef.tar.bz2
linux-3.10-65883371894be2631603d5d412f90f8c09290fef.zip
sctp: rwnd_press should be cumulative
rwnd_press tracks the pressure on the recieve window. Every timer the receive buffer overlows, we truncate the receive window and then grow it back. However, if we don't track the cumulative presser, it's possible to reach a situation when receive buffer is empty, but rwnd stays truncated. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/associola.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 37753cd48be..65f9a7cdf46 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -1482,7 +1482,7 @@ void sctp_assoc_rwnd_decrease(struct sctp_association *asoc, unsigned len)
if (asoc->rwnd >= len) {
asoc->rwnd -= len;
if (over) {
- asoc->rwnd_press = asoc->rwnd;
+ asoc->rwnd_press += asoc->rwnd;
asoc->rwnd = 0;
}
} else {