aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/sm_statefuns.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/sm_statefuns.c')
-rw-r--r--net/sctp/sm_statefuns.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index b66a41d03c0d..8848d329aa2c 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -5893,12 +5893,6 @@ static int sctp_eat_data(const struct sctp_association *asoc,
5893 return SCTP_IERROR_NO_DATA; 5893 return SCTP_IERROR_NO_DATA;
5894 } 5894 }
5895 5895
5896 /* If definately accepting the DATA chunk, record its TSN, otherwise
5897 * wait for renege processing.
5898 */
5899 if (SCTP_CMD_CHUNK_ULP == deliver)
5900 sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_TSN, SCTP_U32(tsn));
5901
5902 chunk->data_accepted = 1; 5896 chunk->data_accepted = 1;
5903 5897
5904 /* Note: Some chunks may get overcounted (if we drop) or overcounted 5898 /* Note: Some chunks may get overcounted (if we drop) or overcounted
@@ -5918,6 +5912,9 @@ static int sctp_eat_data(const struct sctp_association *asoc,
5918 * and discard the DATA chunk. 5912 * and discard the DATA chunk.
5919 */ 5913 */
5920 if (ntohs(data_hdr->stream) >= asoc->c.sinit_max_instreams) { 5914 if (ntohs(data_hdr->stream) >= asoc->c.sinit_max_instreams) {
5915 /* Mark tsn as received even though we drop it */
5916 sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_TSN, SCTP_U32(tsn));
5917
5921 err = sctp_make_op_error(asoc, chunk, SCTP_ERROR_INV_STRM, 5918 err = sctp_make_op_error(asoc, chunk, SCTP_ERROR_INV_STRM,
5922 &data_hdr->stream, 5919 &data_hdr->stream,
5923 sizeof(data_hdr->stream)); 5920 sizeof(data_hdr->stream));