aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sctp/associola.c6
-rw-r--r--net/sctp/ulpqueue.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index fa82b73c965b..2505cd3b8d29 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -1063,6 +1063,12 @@ void sctp_assoc_update(struct sctp_association *asoc,
1063 */ 1063 */
1064 sctp_ssnmap_clear(asoc->ssnmap); 1064 sctp_ssnmap_clear(asoc->ssnmap);
1065 1065
1066 /* Flush the ULP reassembly and ordered queue.
1067 * Any data there will now be stale and will
1068 * cause problems.
1069 */
1070 sctp_ulpq_flush(&asoc->ulpq);
1071
1066 } else { 1072 } else {
1067 /* Add any peer addresses from the new association. */ 1073 /* Add any peer addresses from the new association. */
1068 list_for_each(pos, &new->peer.transport_addr_list) { 1074 list_for_each(pos, &new->peer.transport_addr_list) {
diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index f4759a9bdaee..bfb197e37da3 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -73,7 +73,7 @@ struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *ulpq,
73 73
74 74
75/* Flush the reassembly and ordering queues. */ 75/* Flush the reassembly and ordering queues. */
76static void sctp_ulpq_flush(struct sctp_ulpq *ulpq) 76void sctp_ulpq_flush(struct sctp_ulpq *ulpq)
77{ 77{
78 struct sk_buff *skb; 78 struct sk_buff *skb;
79 struct sctp_ulpevent *event; 79 struct sctp_ulpevent *event;