diff options
| author | Olof Johansson <olof@lixom.net> | 2013-02-04 22:56:41 -0800 | 
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2013-02-04 22:56:41 -0800 | 
| commit | 469da62096e23adc755c1268b00b5fc7a214151b (patch) | |
| tree | fefd055fdae584e38d551f44d1339eb22cee4ed9 /net/ipv6/icmp.c | |
| parent | 4227961650884a06757f80877d5dce0bddc723d4 (diff) | |
| parent | 88b62b915b0b7e25870eb0604ed9a92ba4bfc9f7 (diff) | |
| download | olio-linux-3.10-469da62096e23adc755c1268b00b5fc7a214151b.tar.xz olio-linux-3.10-469da62096e23adc755c1268b00b5fc7a214151b.zip  | |
Merge tag 'v3.8-rc6' into next/soc
Linux 3.8-rc6
Diffstat (limited to 'net/ipv6/icmp.c')
| -rw-r--r-- | net/ipv6/icmp.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index b4a9fd51dae..fff5bdd8b68 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c @@ -81,10 +81,22 @@ static inline struct sock *icmpv6_sk(struct net *net)  	return net->ipv6.icmp_sk[smp_processor_id()];  } +static void icmpv6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, +		       u8 type, u8 code, int offset, __be32 info) +{ +	struct net *net = dev_net(skb->dev); + +	if (type == ICMPV6_PKT_TOOBIG) +		ip6_update_pmtu(skb, net, info, 0, 0); +	else if (type == NDISC_REDIRECT) +		ip6_redirect(skb, net, 0, 0); +} +  static int icmpv6_rcv(struct sk_buff *skb);  static const struct inet6_protocol icmpv6_protocol = {  	.handler	=	icmpv6_rcv, +	.err_handler	=	icmpv6_err,  	.flags		=	INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,  };  |