diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/associola.c | 6 | ||||
-rw-r--r-- | net/sctp/ulpqueue.c | 2 |
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. */ |
76 | static void sctp_ulpq_flush(struct sctp_ulpq *ulpq) | 76 | void 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; |