Skip to content

Commit

Permalink
sctp: implement start_pd for sctp_stream_interleave
Browse files Browse the repository at this point in the history
start_pd is added as a member of sctp_stream_interleave, used to
do partial_delivery for data or idata when datalen >= asoc->rwnd
in sctp_eat_data. The codes have been done in last patches, but
they need to be extracted into start_pd, so that it could be used
for SCTP_CMD_PART_DELIVER cmd as well.

Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
lxin authored and davem330 committed Dec 11, 2017
1 parent 94014e8 commit be4e0ce
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 1 deletion.
1 change: 1 addition & 0 deletions include/net/sctp/stream_interleave.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ struct sctp_stream_interleave {
struct sctp_ulpevent *event);
void (*renege_events)(struct sctp_ulpq *ulpq,
struct sctp_chunk *chunk, gfp_t gfp);
void (*start_pd)(struct sctp_ulpq *ulpq, gfp_t gfp);
};

void sctp_stream_interleave_init(struct sctp_stream *stream);
Expand Down
2 changes: 1 addition & 1 deletion net/sctp/sm_sideeffect.c
Original file line number Diff line number Diff line change
Expand Up @@ -1731,7 +1731,7 @@ static int sctp_cmd_interpreter(enum sctp_event event_type,
break;

case SCTP_CMD_PART_DELIVER:
sctp_ulpq_partial_delivery(&asoc->ulpq, GFP_ATOMIC);
asoc->stream.si->start_pd(&asoc->ulpq, GFP_ATOMIC);
break;

case SCTP_CMD_RENEGE:
Expand Down
2 changes: 2 additions & 0 deletions net/sctp/stream_interleave.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,6 +661,7 @@ static struct sctp_stream_interleave sctp_stream_interleave_0 = {
.ulpevent_data = sctp_ulpq_tail_data,
.enqueue_event = sctp_ulpq_tail_event,
.renege_events = sctp_ulpq_renege,
.start_pd = sctp_ulpq_partial_delivery,
};

static struct sctp_stream_interleave sctp_stream_interleave_1 = {
Expand All @@ -672,6 +673,7 @@ static struct sctp_stream_interleave sctp_stream_interleave_1 = {
.ulpevent_data = sctp_ulpevent_idata,
.enqueue_event = sctp_enqueue_event,
.renege_events = sctp_renege_events,
.start_pd = sctp_intl_start_pd,
};

void sctp_stream_interleave_init(struct sctp_stream *stream)
Expand Down

0 comments on commit be4e0ce

Please sign in to comment.