Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 27594
b: refs/heads/master
c: d5b9f4c
h: refs/heads/master
v: v3
  • Loading branch information
Neil Horman authored and David S. Miller committed Jun 18, 2006
1 parent 3cf7b74 commit 731b2b0
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d7c2c9e3977e4312d093ac092761798d4d47c9e0
refs/heads/master: d5b9f4c083b0e3102f3101545279f623680cb3a0
10 changes: 9 additions & 1 deletion trunk/net/sctp/sm_statefuns.c
Original file line number Diff line number Diff line change
Expand Up @@ -5293,10 +5293,18 @@ static int sctp_eat_data(const struct sctp_association *asoc,
* seems a bit troublesome in that frag_point varies based on
* PMTU. In cases, such as loopback, this might be a rather
* large spill over.
* NOTE: If we have a full receive buffer here, we only renege if
* our receiver can still make progress without the tsn being
* received. We do this because in the event that the associations
* receive queue is empty we are filling a leading gap, and since
* reneging moves the gap to the end of the tsn stream, we are likely
* to stall again very shortly. Avoiding the renege when we fill a
* leading gap is a good heuristic for avoiding such steady state
* stalls.
*/
if (!asoc->rwnd || asoc->rwnd_over ||
(datalen > asoc->rwnd + asoc->frag_point) ||
rcvbuf_over) {
(rcvbuf_over && (!skb_queue_len(&sk->sk_receive_queue)))) {

/* If this is the next TSN, consider reneging to make
* room. Note: Playing nice with a confused sender. A
Expand Down

0 comments on commit 731b2b0

Please sign in to comment.