diff options
| author | David S. Miller <davem@davemloft.net> | 2011-07-05 23:23:37 -0700 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2011-07-05 23:23:37 -0700 | 
| commit | e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4 (patch) | |
| tree | 83c0e192ccaa4752c80b6131a7d0aa8272b5d0d0 /net/ipv4/xfrm4_output.c | |
| parent | 7329f0d58de01878d9ce4f0be7a76e136f223eef (diff) | |
| parent | 712ae51afd55b20c04c5383d02ba5d10233313b1 (diff) | |
| download | olio-linux-3.10-e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4.tar.xz olio-linux-3.10-e12fe68ce34d60c04bb1ddb1d3cc5c3022388fe4.zip  | |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net/ipv4/xfrm4_output.c')
| -rw-r--r-- | net/ipv4/xfrm4_output.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c index 2d51840e53a..327a617d594 100644 --- a/net/ipv4/xfrm4_output.c +++ b/net/ipv4/xfrm4_output.c @@ -32,7 +32,12 @@ static int xfrm4_tunnel_check_size(struct sk_buff *skb)  	dst = skb_dst(skb);  	mtu = dst_mtu(dst);  	if (skb->len > mtu) { -		icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); +		if (skb->sk) +			ip_local_error(skb->sk, EMSGSIZE, ip_hdr(skb)->daddr, +				       inet_sk(skb->sk)->inet_dport, mtu); +		else +			icmp_send(skb, ICMP_DEST_UNREACH, +				  ICMP_FRAG_NEEDED, htonl(mtu));  		ret = -EMSGSIZE;  	}  out:  |