aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/associola.c6
-rw-r--r--net/sctp/sm_sideeffect.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 7eed77a39d0d..8e755ebff3b8 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -512,7 +512,13 @@ void sctp_assoc_set_primary(struct sctp_association *asoc,
512 * to this destination address earlier. The sender MUST set 512 * to this destination address earlier. The sender MUST set
513 * CYCLING_CHANGEOVER to indicate that this switch is a 513 * CYCLING_CHANGEOVER to indicate that this switch is a
514 * double switch to the same destination address. 514 * double switch to the same destination address.
515 *
516 * Really, only bother is we have data queued or outstanding on
517 * the association.
515 */ 518 */
519 if (!asoc->outqueue.outstanding_bytes && !asoc->outqueue.out_qlen)
520 return;
521
516 if (transport->cacc.changeover_active) 522 if (transport->cacc.changeover_active)
517 transport->cacc.cycling_changeover = changeover; 523 transport->cacc.cycling_changeover = changeover;
518 524
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 8674d4919556..eda4fe783be5 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -1418,6 +1418,8 @@ static int sctp_cmd_interpreter(sctp_event_t event_type,
1418 asoc->init_last_sent_to = t; 1418 asoc->init_last_sent_to = t;
1419 chunk->transport = t; 1419 chunk->transport = t;
1420 t->init_sent_count++; 1420 t->init_sent_count++;
1421 /* Set the new transport as primary */
1422 sctp_assoc_set_primary(asoc, t);
1421 break; 1423 break;
1422 1424
1423 case SCTP_CMD_INIT_RESTART: 1425 case SCTP_CMD_INIT_RESTART: