diff options
Diffstat (limited to 'net/ipv6/ip6_output.c')
-rw-r--r-- | net/ipv6/ip6_output.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index eb6d09728633..1a5fe9ad1947 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c | |||
@@ -267,7 +267,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, | |||
267 | if (net_ratelimit()) | 267 | if (net_ratelimit()) |
268 | printk(KERN_DEBUG "IPv6: sending pkt_too_big to self\n"); | 268 | printk(KERN_DEBUG "IPv6: sending pkt_too_big to self\n"); |
269 | skb->dev = dst->dev; | 269 | skb->dev = dst->dev; |
270 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 270 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
271 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS); | 271 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS); |
272 | kfree_skb(skb); | 272 | kfree_skb(skb); |
273 | return -EMSGSIZE; | 273 | return -EMSGSIZE; |
@@ -441,8 +441,7 @@ int ip6_forward(struct sk_buff *skb) | |||
441 | if (hdr->hop_limit <= 1) { | 441 | if (hdr->hop_limit <= 1) { |
442 | /* Force OUTPUT device used as source address */ | 442 | /* Force OUTPUT device used as source address */ |
443 | skb->dev = dst->dev; | 443 | skb->dev = dst->dev; |
444 | icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, | 444 | icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, 0); |
445 | 0, skb->dev); | ||
446 | IP6_INC_STATS_BH(net, | 445 | IP6_INC_STATS_BH(net, |
447 | ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS); | 446 | ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS); |
448 | 447 | ||
@@ -504,7 +503,7 @@ int ip6_forward(struct sk_buff *skb) | |||
504 | goto error; | 503 | goto error; |
505 | if (addrtype & IPV6_ADDR_LINKLOCAL) { | 504 | if (addrtype & IPV6_ADDR_LINKLOCAL) { |
506 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, | 505 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, |
507 | ICMPV6_NOT_NEIGHBOUR, 0, skb->dev); | 506 | ICMPV6_NOT_NEIGHBOUR, 0); |
508 | goto error; | 507 | goto error; |
509 | } | 508 | } |
510 | } | 509 | } |
@@ -512,7 +511,7 @@ int ip6_forward(struct sk_buff *skb) | |||
512 | if (skb->len > dst_mtu(dst)) { | 511 | if (skb->len > dst_mtu(dst)) { |
513 | /* Again, force OUTPUT device used as source address */ | 512 | /* Again, force OUTPUT device used as source address */ |
514 | skb->dev = dst->dev; | 513 | skb->dev = dst->dev; |
515 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_mtu(dst), skb->dev); | 514 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_mtu(dst)); |
516 | IP6_INC_STATS_BH(net, | 515 | IP6_INC_STATS_BH(net, |
517 | ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS); | 516 | ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS); |
518 | IP6_INC_STATS_BH(net, | 517 | IP6_INC_STATS_BH(net, |
@@ -627,7 +626,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) | |||
627 | */ | 626 | */ |
628 | if (!skb->local_df) { | 627 | if (!skb->local_df) { |
629 | skb->dev = skb_dst(skb)->dev; | 628 | skb->dev = skb_dst(skb)->dev; |
630 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 629 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
631 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), | 630 | IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), |
632 | IPSTATS_MIB_FRAGFAILS); | 631 | IPSTATS_MIB_FRAGFAILS); |
633 | kfree_skb(skb); | 632 | kfree_skb(skb); |