summaryrefslogtreecommitdiffstats
path: root/net/ipv4/xfrm4_output.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-07-15 10:06:42 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-07-15 10:06:42 +0100
commit4aa96ccf9ee35cdbd0d423e87a4d551019570218 (patch)
treedca6322681df2e8f33f65c07defce24db68f645c /net/ipv4/xfrm4_output.c
parentcb5fd904f0f14866ab76ec1f6ca3469896e4e2cf (diff)
parent8f2ffa00fb3c05ec0659cd7b056c4e8e106072f1 (diff)
downloadop-kernel-dev-4aa96ccf9ee35cdbd0d423e87a4d551019570218.zip
op-kernel-dev-4aa96ccf9ee35cdbd0d423e87a4d551019570218.tar.gz
Merge branch 'kprobes-thumb' of git://git.yxit.co.uk/linux into devel-stable
Diffstat (limited to 'net/ipv4/xfrm4_output.c')
-rw-r--r--net/ipv4/xfrm4_output.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c
index 2d51840..327a617 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:
OpenPOWER on IntegriCloud