diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-15 20:27:12 +0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-15 20:27:12 +0400 |
commit | cd2d95d97c8d1b66467507400c63d707ddb1deba (patch) | |
tree | 7ad5223ba88110ca6735637c9eef327515e9bb96 /net/ipv6/tcp_ipv6.c | |
parent | 88dd75af0e49e1dabef6f7c7f7f4fa0234b9b988 (diff) | |
parent | 41ef2d5678d83af030125550329b6ae8b74618fa (diff) | |
download | linux-cd2d95d97c8d1b66467507400c63d707ddb1deba.tar.xz |
Merge tag 'v3.9-rc7' into regulator-fix-core
Linux 3.9-rc7
Trivial context overlap conflicts:
MAINTAINERS
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 9b6460055df5..46a5be85be87 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -386,9 +386,17 @@ static void tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, if (dst) dst->ops->redirect(dst, sk, skb); + goto out; } if (type == ICMPV6_PKT_TOOBIG) { + /* We are not interested in TCP_LISTEN and open_requests + * (SYN-ACKs send out by Linux are always <576bytes so + * they should go through unfragmented). + */ + if (sk->sk_state == TCP_LISTEN) + goto out; + tp->mtu_info = ntohl(info); if (!sock_owned_by_user(sk)) tcp_v6_mtu_reduced(sk); |