svn commit: r255337 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Sat Sep 7 00:45:25 UTC 2013


Author: tuexen
Date: Sat Sep  7 00:45:24 2013
New Revision: 255337
URL: http://svnweb.freebsd.org/changeset/base/255337

Log:
  When computing the partial delivery point, take the
  receiver socket buffer size correctly into account.
  
  MFC after: 1 week

Modified:
  head/sys/netinet/sctp_indata.c

Modified: head/sys/netinet/sctp_indata.c
==============================================================================
--- head/sys/netinet/sctp_indata.c	Fri Sep  6 23:49:54 2013	(r255336)
+++ head/sys/netinet/sctp_indata.c	Sat Sep  7 00:45:24 2013	(r255337)
@@ -789,13 +789,12 @@ doit_again:
 			 * but should we?
 			 */
 			if (stcb->sctp_socket) {
-				pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket),
+				pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
 				    stcb->sctp_ep->partial_delivery_point);
 			} else {
 				pd_point = stcb->sctp_ep->partial_delivery_point;
 			}
 			if (sctp_is_all_msg_on_reasm(asoc, &tsize) || (tsize >= pd_point)) {
-
 				/*
 				 * Yes, we setup to start reception, by
 				 * backing down the TSN just in case we
@@ -2491,7 +2490,7 @@ doit_again:
 		 * delivery queue and something can be delivered.
 		 */
 		if (stcb->sctp_socket) {
-			pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket),
+			pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT,
 			    stcb->sctp_ep->partial_delivery_point);
 		} else {
 			pd_point = stcb->sctp_ep->partial_delivery_point;


More information about the svn-src-head mailing list