diff options
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/sm_sideeffect.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c index 4c5bed9af4e3..49fb9acece63 100644 --- a/net/sctp/sm_sideeffect.c +++ b/net/sctp/sm_sideeffect.c | |||
@@ -697,11 +697,15 @@ static void sctp_cmd_setup_t2(sctp_cmd_seq_t *cmds, | |||
697 | { | 697 | { |
698 | struct sctp_transport *t; | 698 | struct sctp_transport *t; |
699 | 699 | ||
700 | t = sctp_assoc_choose_alter_transport(asoc, | 700 | if (chunk->transport) |
701 | t = chunk->transport; | ||
702 | else { | ||
703 | t = sctp_assoc_choose_alter_transport(asoc, | ||
701 | asoc->shutdown_last_sent_to); | 704 | asoc->shutdown_last_sent_to); |
705 | chunk->transport = t; | ||
706 | } | ||
702 | asoc->shutdown_last_sent_to = t; | 707 | asoc->shutdown_last_sent_to = t; |
703 | asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = t->rto; | 708 | asoc->timeouts[SCTP_EVENT_TIMEOUT_T2_SHUTDOWN] = t->rto; |
704 | chunk->transport = t; | ||
705 | } | 709 | } |
706 | 710 | ||
707 | /* Helper function to change the state of an association. */ | 711 | /* Helper function to change the state of an association. */ |