diff options
Diffstat (limited to 'net/ipv6/ip6_tunnel.c')
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 662edb826899..08d944223ec8 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c | |||
@@ -727,11 +727,8 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) | |||
727 | } | 727 | } |
728 | if (mtu < IPV6_MIN_MTU) | 728 | if (mtu < IPV6_MIN_MTU) |
729 | mtu = IPV6_MIN_MTU; | 729 | mtu = IPV6_MIN_MTU; |
730 | if (skb->dst && mtu < dst_mtu(skb->dst)) { | 730 | if (skb->dst) |
731 | struct rt6_info *rt = (struct rt6_info *) skb->dst; | 731 | skb->dst->ops->update_pmtu(skb->dst, mtu); |
732 | rt->rt6i_flags |= RTF_MODIFIED; | ||
733 | rt->u.dst.metrics[RTAX_MTU-1] = mtu; | ||
734 | } | ||
735 | if (skb->len > mtu) { | 732 | if (skb->len > mtu) { |
736 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); | 733 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); |
737 | goto tx_err_dst_release; | 734 | goto tx_err_dst_release; |