sctp: Adjust PMTU updates to accomodate route invalidation.
[firefly-linux-kernel-4.4.55.git] / net / sctp / associola.c
index 5bc9ab161b373eadf51843ebaa77c527716a2122..8cf348e62e74442025a1e8a8a1091797576b271c 100644 (file)
@@ -271,6 +271,7 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
         */
        asoc->peer.sack_needed = 1;
        asoc->peer.sack_cnt = 0;
+       asoc->peer.sack_generation = 1;
 
        /* Assume that the peer will tell us if he recognizes ASCONF
         * as part of INIT exchange.
@@ -1359,7 +1360,7 @@ struct sctp_transport *sctp_assoc_choose_alter_transport(
 /* Update the association's pmtu and frag_point by going through all the
  * transports. This routine is called when a transport's PMTU has changed.
  */
-void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
+void sctp_assoc_sync_pmtu(struct sock *sk, struct sctp_association *asoc)
 {
        struct sctp_transport *t;
        __u32 pmtu = 0;
@@ -1371,7 +1372,7 @@ void sctp_assoc_sync_pmtu(struct sctp_association *asoc)
        list_for_each_entry(t, &asoc->peer.transport_addr_list,
                                transports) {
                if (t->pmtu_pending && t->dst) {
-                       sctp_transport_update_pmtu(t, dst_mtu(t->dst));
+                       sctp_transport_update_pmtu(sk, t, dst_mtu(t->dst));
                        t->pmtu_pending = 0;
                }
                if (!pmtu || (t->pathmtu < pmtu))