aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp')
-rw-r--r--net/sctp/associola.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index 525864bf4f07..215b56951d76 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -810,11 +810,16 @@ void sctp_assoc_control_transport(struct sctp_association *asoc,
810 break; 810 break;
811 811
812 case SCTP_TRANSPORT_DOWN: 812 case SCTP_TRANSPORT_DOWN:
813 /* if the transort was never confirmed, do not transition it 813 /* If the transport was never confirmed, do not transition it
814 * to inactive state. 814 * to inactive state. Also, release the cached route since
815 * there may be a better route next time.
815 */ 816 */
816 if (transport->state != SCTP_UNCONFIRMED) 817 if (transport->state != SCTP_UNCONFIRMED)
817 transport->state = SCTP_INACTIVE; 818 transport->state = SCTP_INACTIVE;
819 else {
820 dst_release(transport->dst);
821 transport->dst = NULL;
822 }
818 823
819 spc_state = SCTP_ADDR_UNREACHABLE; 824 spc_state = SCTP_ADDR_UNREACHABLE;
820 break; 825 break;