SCTP: Fix PR-SCTP to deliver all the accumulated ordered chunks
authorVlad Yasevich <vladislav.yasevich@hp.com>
Fri, 9 Nov 2007 16:43:41 +0000 (11:43 -0500)
committerVlad Yasevich <vladislav.yasevich@hp.com>
Fri, 9 Nov 2007 16:43:41 +0000 (11:43 -0500)
There is a small bug when we process a FWD-TSN.  We'll deliver
anything upto the current next expected SSN.  However, if the
next expected is already in the queue, it will take another
chunk to trigger its delivery.  The fix is to simply check
the current queued SSN is the next expected one.

Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
net/sctp/ulpqueue.c

index 4be92d0..4908041 100644 (file)
@@ -862,7 +862,7 @@ static inline void sctp_ulpq_reap_ordered(struct sctp_ulpq *ulpq, __u16 sid)
                        continue;
 
                /* see if this ssn has been marked by skipping */
-               if (!SSN_lt(cssn, sctp_ssn_peek(in, csid)))
+               if (!SSN_lte(cssn, sctp_ssn_peek(in, csid)))
                        break;
 
                __skb_unlink(pos, &ulpq->lobby);