aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sctp/associola.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/net/sctp/associola.c b/net/sctp/associola.c
index caba989f4e76..8450960df24f 100644
--- a/net/sctp/associola.c
+++ b/net/sctp/associola.c
@@ -680,13 +680,15 @@ struct sctp_transport *sctp_assoc_add_peer(struct sctp_association *asoc,
680 */ 680 */
681 peer->param_flags = asoc->param_flags; 681 peer->param_flags = asoc->param_flags;
682 682
683 sctp_transport_route(peer, NULL, sp);
684
683 /* Initialize the pmtu of the transport. */ 685 /* Initialize the pmtu of the transport. */
684 if (peer->param_flags & SPP_PMTUD_ENABLE) 686 if (peer->param_flags & SPP_PMTUD_DISABLE) {
685 sctp_transport_pmtu(peer); 687 if (asoc->pathmtu)
686 else if (asoc->pathmtu) 688 peer->pathmtu = asoc->pathmtu;
687 peer->pathmtu = asoc->pathmtu; 689 else
688 else 690 peer->pathmtu = SCTP_DEFAULT_MAXSEGMENT;
689 peer->pathmtu = SCTP_DEFAULT_MAXSEGMENT; 691 }
690 692
691 /* If this is the first transport addr on this association, 693 /* If this is the first transport addr on this association,
692 * initialize the association PMTU to the peer's PMTU. 694 * initialize the association PMTU to the peer's PMTU.