[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20160306.005528.536271812454698509.davem@davemloft.net>
Date: Sun, 06 Mar 2016 00:55:28 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: weiwan@...gle.com
Cc: netdev@...r.kernel.org, edumazet@...gle.com
Subject: Re: [PATCH] ipv6: Fix the pmtu path for connected UDP socket
From: Wei Wang <weiwan@...gle.com>
Date: Wed, 2 Mar 2016 11:19:21 -0800
> @@ -566,7 +567,16 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
> if (type == ICMPV6_PKT_TOOBIG) {
> if (!ip6_sk_accept_pmtu(sk))
> goto out;
> - ip6_sk_update_pmtu(skb, sk, info);
> + bh_lock_sock(sk);
> + if (sk->sk_state == TCP_ESTABLISHED &&
> + !sock_owned_by_user(sk) &&
> + ipv6_addr_equal(saddr, &sk->sk_v6_rcv_saddr) &&
> + ipv6_addr_equal(daddr, &sk->sk_v6_daddr) &&
> + uh->dest == sk->sk_dport)
> + inet6_csk_update_pmtu(sk, ntohl(info));
If I apply this patch it will hide a bug.
Why isn't ip6_sk_update_pmtu() matching the same route as the
one attached to the socket?
I'd prefer you figure out what part of the lookup key used is
wrong, and fix that instead.
Thanks.
Powered by blists - more mailing lists