diff options
Diffstat (limited to 'net/sctp/associola.c')
-rw-r--r-- | net/sctp/associola.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c index 5f1fb8bd862d..1a21c571aa03 100644 --- a/net/sctp/associola.c +++ b/net/sctp/associola.c | |||
@@ -569,6 +569,8 @@ void sctp_assoc_rm_peer(struct sctp_association *asoc, | |||
569 | sctp_assoc_set_primary(asoc, transport); | 569 | sctp_assoc_set_primary(asoc, transport); |
570 | if (asoc->peer.active_path == peer) | 570 | if (asoc->peer.active_path == peer) |
571 | asoc->peer.active_path = transport; | 571 | asoc->peer.active_path = transport; |
572 | if (asoc->peer.retran_path == peer) | ||
573 | asoc->peer.retran_path = transport; | ||
572 | if (asoc->peer.last_data_from == peer) | 574 | if (asoc->peer.last_data_from == peer) |
573 | asoc->peer.last_data_from = transport; | 575 | asoc->peer.last_data_from = transport; |
574 | 576 | ||
@@ -1089,7 +1091,6 @@ static void sctp_assoc_bh_rcv(struct work_struct *work) | |||
1089 | base.inqueue.immediate); | 1091 | base.inqueue.immediate); |
1090 | struct sctp_endpoint *ep; | 1092 | struct sctp_endpoint *ep; |
1091 | struct sctp_chunk *chunk; | 1093 | struct sctp_chunk *chunk; |
1092 | struct sock *sk; | ||
1093 | struct sctp_inq *inqueue; | 1094 | struct sctp_inq *inqueue; |
1094 | int state; | 1095 | int state; |
1095 | sctp_subtype_t subtype; | 1096 | sctp_subtype_t subtype; |
@@ -1097,7 +1098,6 @@ static void sctp_assoc_bh_rcv(struct work_struct *work) | |||
1097 | 1098 | ||
1098 | /* The association should be held so we should be safe. */ | 1099 | /* The association should be held so we should be safe. */ |
1099 | ep = asoc->ep; | 1100 | ep = asoc->ep; |
1100 | sk = asoc->base.sk; | ||
1101 | 1101 | ||
1102 | inqueue = &asoc->base.inqueue; | 1102 | inqueue = &asoc->base.inqueue; |
1103 | sctp_association_hold(asoc); | 1103 | sctp_association_hold(asoc); |
@@ -1325,6 +1325,8 @@ void sctp_assoc_update_retran_path(struct sctp_association *asoc) | |||
1325 | 1325 | ||
1326 | if (t) | 1326 | if (t) |
1327 | asoc->peer.retran_path = t; | 1327 | asoc->peer.retran_path = t; |
1328 | else | ||
1329 | t = asoc->peer.retran_path; | ||
1328 | 1330 | ||
1329 | SCTP_DEBUG_PRINTK_IPADDR("sctp_assoc_update_retran_path:association" | 1331 | SCTP_DEBUG_PRINTK_IPADDR("sctp_assoc_update_retran_path:association" |
1330 | " %p addr: ", | 1332 | " %p addr: ", |
@@ -1595,7 +1597,7 @@ void sctp_assoc_clean_asconf_ack_cache(const struct sctp_association *asoc) | |||
1595 | struct sctp_chunk *ack; | 1597 | struct sctp_chunk *ack; |
1596 | struct sctp_chunk *tmp; | 1598 | struct sctp_chunk *tmp; |
1597 | 1599 | ||
1598 | /* We can remove all the entries from the queue upto | 1600 | /* We can remove all the entries from the queue up to |
1599 | * the "Peer-Sequence-Number". | 1601 | * the "Peer-Sequence-Number". |
1600 | */ | 1602 | */ |
1601 | list_for_each_entry_safe(ack, tmp, &asoc->asconf_ack_list, | 1603 | list_for_each_entry_safe(ack, tmp, &asoc->asconf_ack_list, |