svn commit: r332190 - stable/11/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Sat Apr 7 18:02:17 UTC 2018
Author: tuexen
Date: Sat Apr 7 18:02:17 2018
New Revision: 332190
URL: https://svnweb.freebsd.org/changeset/base/332190
Log:
MFC r323670:
Fix an accounting bug and use sctp_timer_start to start a timer.
Modified:
stable/11/sys/netinet/sctp_indata.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/netinet/sctp_indata.c
==============================================================================
--- stable/11/sys/netinet/sctp_indata.c Sat Apr 7 17:59:08 2018 (r332189)
+++ stable/11/sys/netinet/sctp_indata.c Sat Apr 7 18:02:17 2018 (r332190)
@@ -1594,9 +1594,17 @@ sctp_queue_data_for_reasm(struct sctp_tcb *stcb, struc
next_fsn, control->fsn_included);
TAILQ_REMOVE(&control->reasm, at, sctp_next);
lenadded = sctp_add_chk_to_control(control, strm, stcb, asoc, at, SCTP_READ_LOCK_NOT_HELD);
- asoc->size_on_all_streams += lenadded;
if (control->on_read_q) {
do_wakeup = 1;
+ } else {
+ /*
+ * We only add to the
+ * size-on-all-streams if its not on
+ * the read q. The read q flag will
+ * cause a sballoc so its accounted
+ * for there.
+ */
+ asoc->size_on_all_streams += lenadded;
}
next_fsn++;
if (control->end_added && control->pdapi_started) {
@@ -4229,8 +4237,7 @@ again:
}
if (net->flight_size) {
j++;
- (void)SCTP_OS_TIMER_START(&net->rxt_timer.timer, to_ticks,
- sctp_timeout_handler, &net->rxt_timer);
+ sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net);
if (net->window_probe) {
net->window_probe = 0;
}
@@ -4242,8 +4249,7 @@ again:
*/
net->window_probe = 0;
if (!SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
- SCTP_OS_TIMER_START(&net->rxt_timer.timer, to_ticks,
- sctp_timeout_handler, &net->rxt_timer);
+ sctp_timer_start(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep, stcb, net);
}
} else if (SCTP_OS_TIMER_PENDING(&net->rxt_timer.timer)) {
sctp_timer_stop(SCTP_TIMER_TYPE_SEND, stcb->sctp_ep,
More information about the svn-src-stable
mailing list