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 4be92d0a2cab51b3c9821c55b29092792bc4c59c..4908041ffb319c57d8ef1925f01d358c54f489aa 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);