|
@@ -2359,10 +2359,13 @@ EXPORT_SYMBOL_GPL(ip6_update_pmtu);
|
|
|
|
|
|
void ip6_sk_update_pmtu(struct sk_buff *skb, struct sock *sk, __be32 mtu)
|
|
void ip6_sk_update_pmtu(struct sk_buff *skb, struct sock *sk, __be32 mtu)
|
|
{
|
|
{
|
|
|
|
+ int oif = sk->sk_bound_dev_if;
|
|
struct dst_entry *dst;
|
|
struct dst_entry *dst;
|
|
|
|
|
|
- ip6_update_pmtu(skb, sock_net(sk), mtu,
|
|
|
|
- sk->sk_bound_dev_if, sk->sk_mark, sk->sk_uid);
|
|
|
|
|
|
+ if (!oif && skb->dev)
|
|
|
|
+ oif = l3mdev_master_ifindex(skb->dev);
|
|
|
|
+
|
|
|
|
+ ip6_update_pmtu(skb, sock_net(sk), mtu, oif, sk->sk_mark, sk->sk_uid);
|
|
|
|
|
|
dst = __sk_dst_get(sk);
|
|
dst = __sk_dst_get(sk);
|
|
if (!dst || !dst->obsolete ||
|
|
if (!dst || !dst->obsolete ||
|