summaryrefslogtreecommitdiffstats
path: root/kernel/net/sctp/outqueue.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/net/sctp/outqueue.c')
-rw-r--r--kernel/net/sctp/outqueue.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/net/sctp/outqueue.c b/kernel/net/sctp/outqueue.c
index 7e8f0a117..c0380cfb1 100644
--- a/kernel/net/sctp/outqueue.c
+++ b/kernel/net/sctp/outqueue.c
@@ -324,6 +324,7 @@ int sctp_outq_tail(struct sctp_outq *q, struct sctp_chunk *chunk)
sctp_cname(SCTP_ST_CHUNK(chunk->chunk_hdr->type)) :
"illegal chunk");
+ sctp_chunk_hold(chunk);
sctp_outq_tail_data(q, chunk);
if (chunk->chunk_hdr->flags & SCTP_DATA_UNORDERED)
SCTP_INC_STATS(net, SCTP_MIB_OUTUNORDERCHUNKS);
@@ -1251,6 +1252,7 @@ int sctp_outq_sack(struct sctp_outq *q, struct sctp_chunk *chunk)
*/
sack_a_rwnd = ntohl(sack->a_rwnd);
+ asoc->peer.zero_window_announced = !sack_a_rwnd;
outstanding = q->outstanding_bytes;
if (outstanding < sack_a_rwnd)