|
@@ -271,7 +271,7 @@ static int ip_finish_output(struct net *net, struct sock *sk, struct sk_buff *sk
|
|
return dst_output(net, sk, skb);
|
|
return dst_output(net, sk, skb);
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
- mtu = ip_skb_dst_mtu(skb);
|
|
|
|
|
|
+ mtu = ip_skb_dst_mtu(sk, skb);
|
|
if (skb_is_gso(skb))
|
|
if (skb_is_gso(skb))
|
|
return ip_finish_output_gso(net, sk, skb, mtu);
|
|
return ip_finish_output_gso(net, sk, skb, mtu);
|
|
|
|
|
|
@@ -541,7 +541,7 @@ int ip_do_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
|
|
|
|
|
|
iph = ip_hdr(skb);
|
|
iph = ip_hdr(skb);
|
|
|
|
|
|
- mtu = ip_skb_dst_mtu(skb);
|
|
|
|
|
|
+ mtu = ip_skb_dst_mtu(sk, skb);
|
|
if (IPCB(skb)->frag_max_size && IPCB(skb)->frag_max_size < mtu)
|
|
if (IPCB(skb)->frag_max_size && IPCB(skb)->frag_max_size < mtu)
|
|
mtu = IPCB(skb)->frag_max_size;
|
|
mtu = IPCB(skb)->frag_max_size;
|
|
|
|
|