|
@@ -377,9 +377,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
|
|
*/
|
|
*/
|
|
skb_set_owner_w(nskb, sk);
|
|
skb_set_owner_w(nskb, sk);
|
|
|
|
|
|
- /* The 'obsolete' field of dst is set to 2 when a dst is freed. */
|
|
|
|
- if (!dst || (dst->obsolete > 1)) {
|
|
|
|
- dst_release(dst);
|
|
|
|
|
|
+ if (!sctp_transport_dst_check(tp)) {
|
|
sctp_transport_route(tp, NULL, sctp_sk(sk));
|
|
sctp_transport_route(tp, NULL, sctp_sk(sk));
|
|
if (asoc && (asoc->param_flags & SPP_PMTUD_ENABLE)) {
|
|
if (asoc && (asoc->param_flags & SPP_PMTUD_ENABLE)) {
|
|
sctp_assoc_sync_pmtu(asoc);
|
|
sctp_assoc_sync_pmtu(asoc);
|