svn commit: r347670 - stable/11/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Thu May 16 09:15:20 UTC 2019
Author: tuexen
Date: Thu May 16 09:15:18 2019
New Revision: 347670
URL: https://svnweb.freebsd.org/changeset/base/347670
Log:
MFC r344924:
Some cleanup and consistency improvements.
Modified:
stable/11/sys/netinet/sctp_ss_functions.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/netinet/sctp_ss_functions.c
==============================================================================
--- stable/11/sys/netinet/sctp_ss_functions.c Thu May 16 09:13:41 2019 (r347669)
+++ stable/11/sys/netinet/sctp_ss_functions.c Thu May 16 09:15:18 2019 (r347670)
@@ -52,6 +52,9 @@ sctp_ss_default_init(struct sctp_tcb *stcb, struct sct
{
uint16_t i;
+ if (holds_lock == 0) {
+ SCTP_TCB_SEND_LOCK(stcb);
+ }
asoc->ss_data.locked_on_sending = NULL;
asoc->ss_data.last_out_stream = NULL;
TAILQ_INIT(&asoc->ss_data.out.wheel);
@@ -63,8 +66,11 @@ sctp_ss_default_init(struct sctp_tcb *stcb, struct sct
for (i = 0; i < stcb->asoc.streamoutcnt; i++) {
stcb->asoc.ss_functions.sctp_ss_add_to_stream(stcb, &stcb->asoc,
&stcb->asoc.strmout[i],
- NULL, holds_lock);
+ NULL, 1);
}
+ if (holds_lock == 0) {
+ SCTP_TCB_SEND_UNLOCK(stcb);
+ }
return;
}
@@ -394,12 +400,13 @@ sctp_ss_prio_clear(struct sctp_tcb *stcb, struct sctp_
SCTP_TCB_SEND_LOCK(stcb);
}
while (!TAILQ_EMPTY(&asoc->ss_data.out.wheel)) {
- struct sctp_stream_out *strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
+ struct sctp_stream_out *strq;
+ strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
if (clear_values) {
strq->ss_params.prio.priority = 0;
}
- TAILQ_REMOVE(&asoc->ss_data.out.wheel, TAILQ_FIRST(&asoc->ss_data.out.wheel), ss_params.prio.next_spoke);
+ TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.prio.next_spoke);
strq->ss_params.prio.next_spoke.tqe_next = NULL;
strq->ss_params.prio.next_spoke.tqe_prev = NULL;
@@ -584,12 +591,13 @@ sctp_ss_fb_clear(struct sctp_tcb *stcb, struct sctp_as
SCTP_TCB_SEND_LOCK(stcb);
}
while (!TAILQ_EMPTY(&asoc->ss_data.out.wheel)) {
- struct sctp_stream_out *strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
+ struct sctp_stream_out *strq;
+ strq = TAILQ_FIRST(&asoc->ss_data.out.wheel);
if (clear_values) {
strq->ss_params.fb.rounds = -1;
}
- TAILQ_REMOVE(&asoc->ss_data.out.wheel, TAILQ_FIRST(&asoc->ss_data.out.wheel), ss_params.fb.next_spoke);
+ TAILQ_REMOVE(&asoc->ss_data.out.wheel, strq, ss_params.fb.next_spoke);
strq->ss_params.fb.next_spoke.tqe_next = NULL;
strq->ss_params.fb.next_spoke.tqe_prev = NULL;
}
@@ -762,6 +770,9 @@ sctp_ss_fcfs_init(struct sctp_tcb *stcb, struct sctp_a
struct sctp_stream_queue_pending *sp;
uint16_t i;
+ if (holds_lock == 0) {
+ SCTP_TCB_SEND_LOCK(stcb);
+ }
TAILQ_INIT(&asoc->ss_data.out.list);
/*
* If there is data in the stream queues already, the scheduler of
@@ -779,11 +790,14 @@ sctp_ss_fcfs_init(struct sctp_tcb *stcb, struct sctp_a
x++;
}
if (sp != NULL) {
- sctp_ss_fcfs_add(stcb, &stcb->asoc, &stcb->asoc.strmout[i], sp, holds_lock);
+ sctp_ss_fcfs_add(stcb, &stcb->asoc, &stcb->asoc.strmout[i], sp, 1);
add_more = 1;
}
}
n++;
+ }
+ if (holds_lock == 0) {
+ SCTP_TCB_SEND_UNLOCK(stcb);
}
return;
}
More information about the svn-src-stable-11
mailing list