diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 95238284c422..6625b15ab81a 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -291,7 +291,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a | |||
291 | return asoc; | 291 | return asoc; |
292 | 292 | ||
293 | stream_free: | 293 | stream_free: |
294 | sctp_stream_free(asoc->stream); | 294 | sctp_stream_free(&asoc->stream); |
295 | fail_init: | 295 | fail_init: |
296 | sock_put(asoc->base.sk); | 296 | sock_put(asoc->base.sk); |
297 | sctp_endpoint_put(asoc->ep); | 297 | sctp_endpoint_put(asoc->ep); |
@@ -365,7 +365,7 @@ void sctp_association_free(struct sctp_association *asoc) | |||
365 | sctp_tsnmap_free(&asoc->peer.tsn_map); | 365 | sctp_tsnmap_free(&asoc->peer.tsn_map); |
366 | 366 | ||
367 | /* Free stream information. */ | 367 | /* Free stream information. */ |
368 | sctp_stream_free(asoc->stream); | 368 | sctp_stream_free(&asoc->stream); |
369 | 369 | ||
370 | if (asoc->strreset_chunk) | 370 | if (asoc->strreset_chunk) |
371 | sctp_chunk_free(asoc->strreset_chunk); | 371 | sctp_chunk_free(asoc->strreset_chunk); |
@@ -1151,7 +1151,7 @@ void sctp_assoc_update(struct sctp_association *asoc, | |||
1151 | /* Reinitialize SSN for both local streams | 1151 | /* Reinitialize SSN for both local streams |
1152 | * and peer's streams. | 1152 | * and peer's streams. |
1153 | */ | 1153 | */ |
1154 | sctp_stream_clear(asoc->stream); | 1154 | sctp_stream_clear(&asoc->stream); |
1155 | 1155 | ||
1156 | /* Flush the ULP reassembly and ordered queue. | 1156 | /* Flush the ULP reassembly and ordered queue. |
1157 | * Any data there will now be stale and will | 1157 | * Any data there will now be stale and will |
@@ -1177,11 +1177,8 @@ void sctp_assoc_update(struct sctp_association *asoc, | |||
1177 | asoc->ctsn_ack_point = asoc->next_tsn - 1; | 1177 | asoc->ctsn_ack_point = asoc->next_tsn - 1; |
1178 | asoc->adv_peer_ack_point = asoc->ctsn_ack_point; | 1178 | asoc->adv_peer_ack_point = asoc->ctsn_ack_point; |
1179 | 1179 | ||
1180 | if (sctp_state(asoc, COOKIE_WAIT)) { | 1180 | if (sctp_state(asoc, COOKIE_WAIT)) |
1181 | sctp_stream_free(asoc->stream); | 1181 | sctp_stream_update(&asoc->stream, &new->stream); |
1182 | asoc->stream = new->stream; | ||
1183 | new->stream = NULL; | ||
1184 | } | ||
1185 | 1182 | ||
1186 | if (!asoc->assoc_id) { | 1183 | if (!asoc->assoc_id) { |
1187 | /* get a new association id since we don't have one | 1184 | /* get a new association id since we don't have one |