diff options
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 | ||||
-rw-r--r-- | include/linux/icmpv6.h | 3 | ||||
-rw-r--r-- | net/ipv4/ip_gre.c | 2 | ||||
-rw-r--r-- | net/ipv6/exthdrs.c | 2 | ||||
-rw-r--r-- | net/ipv6/icmp.c | 5 | ||||
-rw-r--r-- | net/ipv6/ip6_input.c | 3 | ||||
-rw-r--r-- | net/ipv6/ip6_output.c | 11 | ||||
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 6 | ||||
-rw-r--r-- | net/ipv6/mip6.c | 2 | ||||
-rw-r--r-- | net/ipv6/netfilter/ip6t_REJECT.c | 2 | ||||
-rw-r--r-- | net/ipv6/reassembly.c | 2 | ||||
-rw-r--r-- | net/ipv6/route.c | 4 | ||||
-rw-r--r-- | net/ipv6/sit.c | 2 | ||||
-rw-r--r-- | net/ipv6/tunnel6.c | 4 | ||||
-rw-r--r-- | net/ipv6/udp.c | 5 | ||||
-rw-r--r-- | net/ipv6/xfrm6_output.c | 2 | ||||
-rw-r--r-- | net/netfilter/ipvs/ip_vs_core.c | 5 | ||||
-rw-r--r-- | net/netfilter/ipvs/ip_vs_xmit.c | 10 |
18 files changed, 33 insertions, 39 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 30bdf427ee6d..83a7751c38d6 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c | |||
@@ -1374,7 +1374,7 @@ static void ipoib_cm_skb_reap(struct work_struct *work) | |||
1374 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); | 1374 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); |
1375 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) | 1375 | #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) |
1376 | else if (skb->protocol == htons(ETH_P_IPV6)) | 1376 | else if (skb->protocol == htons(ETH_P_IPV6)) |
1377 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, priv->dev); | 1377 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
1378 | #endif | 1378 | #endif |
1379 | dev_kfree_skb_any(skb); | 1379 | dev_kfree_skb_any(skb); |
1380 | 1380 | ||
diff --git a/include/linux/icmpv6.h b/include/linux/icmpv6.h index c0d8357917e2..4c4c74ec5987 100644 --- a/include/linux/icmpv6.h +++ b/include/linux/icmpv6.h | |||
@@ -174,8 +174,7 @@ struct icmp6_filter { | |||
174 | 174 | ||
175 | extern void icmpv6_send(struct sk_buff *skb, | 175 | extern void icmpv6_send(struct sk_buff *skb, |
176 | u8 type, u8 code, | 176 | u8 type, u8 code, |
177 | __u32 info, | 177 | __u32 info); |
178 | struct net_device *dev); | ||
179 | 178 | ||
180 | extern int icmpv6_init(void); | 179 | extern int icmpv6_init(void); |
181 | extern int icmpv6_err_convert(u8 type, u8 code, | 180 | extern int icmpv6_err_convert(u8 type, u8 code, |
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index a2a5983dbf03..c0c5274d0271 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c | |||
@@ -793,7 +793,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev | |||
793 | } | 793 | } |
794 | 794 | ||
795 | if (mtu >= IPV6_MIN_MTU && mtu < skb->len - tunnel->hlen + gre_hlen) { | 795 | if (mtu >= IPV6_MIN_MTU && mtu < skb->len - tunnel->hlen + gre_hlen) { |
796 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); | 796 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
797 | ip_rt_put(rt); | 797 | ip_rt_put(rt); |
798 | goto tx_error; | 798 | goto tx_error; |
799 | } | 799 | } |
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index 4bac362b1335..074f2c084f9f 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c | |||
@@ -481,7 +481,7 @@ looped_back: | |||
481 | IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)), | 481 | IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)), |
482 | IPSTATS_MIB_INHDRERRORS); | 482 | IPSTATS_MIB_INHDRERRORS); |
483 | icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, | 483 | icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, |
484 | 0, skb->dev); | 484 | 0); |
485 | kfree_skb(skb); | 485 | kfree_skb(skb); |
486 | return -1; | 486 | return -1; |
487 | } | 487 | } |
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 9a37379d741a..eb9abe24bdf0 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -114,7 +114,7 @@ static __inline__ void icmpv6_xmit_unlock(struct sock *sk) | |||
114 | */ | 114 | */ |
115 | void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos) | 115 | void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos) |
116 | { | 116 | { |
117 | icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); | 117 | icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos); |
118 | kfree_skb(skb); | 118 | kfree_skb(skb); |
119 | } | 119 | } |
120 | 120 | ||
@@ -300,8 +300,7 @@ static inline void mip6_addr_swap(struct sk_buff *skb) {} | |||
300 | /* | 300 | /* |
301 | * Send an ICMP message in response to a packet in error | 301 | * Send an ICMP message in response to a packet in error |
302 | */ | 302 | */ |
303 | void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, | 303 | void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info) |
304 | struct net_device *dev) | ||
305 | { | 304 | { |
306 | struct net *net = dev_net(skb->dev); | 305 | struct net *net = dev_net(skb->dev); |
307 | struct inet6_dev *idev = NULL; | 306 | struct inet6_dev *idev = NULL; |
diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c index 237e2dba6e94..e28f9203deca 100644 --- a/net/ipv6/ip6_input.c +++ b/net/ipv6/ip6_input.c | |||
@@ -216,8 +216,7 @@ resubmit: | |||
216 | IP6_INC_STATS_BH(net, idev, | 216 | IP6_INC_STATS_BH(net, idev, |
217 | IPSTATS_MIB_INUNKNOWNPROTOS); | 217 | IPSTATS_MIB_INUNKNOWNPROTOS); |
218 | icmpv6_send(skb, ICMPV6_PARAMPROB, | 218 | icmpv6_send(skb, ICMPV6_PARAMPROB, |
219 | ICMPV6_UNK_NEXTHDR, nhoff, | 219 | ICMPV6_UNK_NEXTHDR, nhoff); |
220 | skb->dev); | ||
221 | } | 220 | } |
222 | } else | 221 | } else |
223 | IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDELIVERS); | 222 | IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDELIVERS); |
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); |
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 9b02492d8706..138980eec214 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c | |||
@@ -622,7 +622,7 @@ ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, | |||
622 | if (rt && rt->rt6i_dev) | 622 | if (rt && rt->rt6i_dev) |
623 | skb2->dev = rt->rt6i_dev; | 623 | skb2->dev = rt->rt6i_dev; |
624 | 624 | ||
625 | icmpv6_send(skb2, rel_type, rel_code, rel_info, skb2->dev); | 625 | icmpv6_send(skb2, rel_type, rel_code, rel_info); |
626 | 626 | ||
627 | if (rt) | 627 | if (rt) |
628 | dst_release(&rt->u.dst); | 628 | dst_release(&rt->u.dst); |
@@ -1014,7 +1014,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1014 | tel = (struct ipv6_tlv_tnl_enc_lim *)&skb_network_header(skb)[offset]; | 1014 | tel = (struct ipv6_tlv_tnl_enc_lim *)&skb_network_header(skb)[offset]; |
1015 | if (tel->encap_limit == 0) { | 1015 | if (tel->encap_limit == 0) { |
1016 | icmpv6_send(skb, ICMPV6_PARAMPROB, | 1016 | icmpv6_send(skb, ICMPV6_PARAMPROB, |
1017 | ICMPV6_HDR_FIELD, offset + 2, skb->dev); | 1017 | ICMPV6_HDR_FIELD, offset + 2); |
1018 | return -1; | 1018 | return -1; |
1019 | } | 1019 | } |
1020 | encap_limit = tel->encap_limit - 1; | 1020 | encap_limit = tel->encap_limit - 1; |
@@ -1033,7 +1033,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1033 | err = ip6_tnl_xmit2(skb, dev, dsfield, &fl, encap_limit, &mtu); | 1033 | err = ip6_tnl_xmit2(skb, dev, dsfield, &fl, encap_limit, &mtu); |
1034 | if (err != 0) { | 1034 | if (err != 0) { |
1035 | if (err == -EMSGSIZE) | 1035 | if (err == -EMSGSIZE) |
1036 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); | 1036 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
1037 | return -1; | 1037 | return -1; |
1038 | } | 1038 | } |
1039 | 1039 | ||
diff --git a/net/ipv6/mip6.c b/net/ipv6/mip6.c index f797e8c6f3b3..2794b6002836 100644 --- a/net/ipv6/mip6.c +++ b/net/ipv6/mip6.c | |||
@@ -56,7 +56,7 @@ static inline void *mip6_padn(__u8 *data, __u8 padlen) | |||
56 | 56 | ||
57 | static inline void mip6_param_prob(struct sk_buff *skb, u8 code, int pos) | 57 | static inline void mip6_param_prob(struct sk_buff *skb, u8 code, int pos) |
58 | { | 58 | { |
59 | icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); | 59 | icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos); |
60 | } | 60 | } |
61 | 61 | ||
62 | static int mip6_mh_len(int type) | 62 | static int mip6_mh_len(int type) |
diff --git a/net/ipv6/netfilter/ip6t_REJECT.c b/net/ipv6/netfilter/ip6t_REJECT.c index 8311ca31816a..dd8afbaf00a8 100644 --- a/net/ipv6/netfilter/ip6t_REJECT.c +++ b/net/ipv6/netfilter/ip6t_REJECT.c | |||
@@ -169,7 +169,7 @@ send_unreach(struct net *net, struct sk_buff *skb_in, unsigned char code, | |||
169 | if (hooknum == NF_INET_LOCAL_OUT && skb_in->dev == NULL) | 169 | if (hooknum == NF_INET_LOCAL_OUT && skb_in->dev == NULL) |
170 | skb_in->dev = net->loopback_dev; | 170 | skb_in->dev = net->loopback_dev; |
171 | 171 | ||
172 | icmpv6_send(skb_in, ICMPV6_DEST_UNREACH, code, 0, NULL); | 172 | icmpv6_send(skb_in, ICMPV6_DEST_UNREACH, code, 0); |
173 | } | 173 | } |
174 | 174 | ||
175 | static unsigned int | 175 | static unsigned int |
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index b2847ed6a7d9..a555156e9779 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c | |||
@@ -228,7 +228,7 @@ static void ip6_frag_expire(unsigned long data) | |||
228 | pointer directly, device might already disappeared. | 228 | pointer directly, device might already disappeared. |
229 | */ | 229 | */ |
230 | fq->q.fragments->dev = dev; | 230 | fq->q.fragments->dev = dev; |
231 | icmpv6_send(fq->q.fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0, dev); | 231 | icmpv6_send(fq->q.fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0); |
232 | out_rcu_unlock: | 232 | out_rcu_unlock: |
233 | rcu_read_unlock(); | 233 | rcu_read_unlock(); |
234 | out: | 234 | out: |
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 8500156f2637..88c0a5c49ae8 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
@@ -909,7 +909,7 @@ static void ip6_link_failure(struct sk_buff *skb) | |||
909 | { | 909 | { |
910 | struct rt6_info *rt; | 910 | struct rt6_info *rt; |
911 | 911 | ||
912 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0, skb->dev); | 912 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0); |
913 | 913 | ||
914 | rt = (struct rt6_info *) skb_dst(skb); | 914 | rt = (struct rt6_info *) skb_dst(skb); |
915 | if (rt) { | 915 | if (rt) { |
@@ -1884,7 +1884,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes) | |||
1884 | ipstats_mib_noroutes); | 1884 | ipstats_mib_noroutes); |
1885 | break; | 1885 | break; |
1886 | } | 1886 | } |
1887 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, code, 0, skb->dev); | 1887 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, code, 0); |
1888 | kfree_skb(skb); | 1888 | kfree_skb(skb); |
1889 | return 0; | 1889 | return 0; |
1890 | } | 1890 | } |
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 96eb2d4641c4..b1eea811be48 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c | |||
@@ -743,7 +743,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, | |||
743 | skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); | 743 | skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); |
744 | 744 | ||
745 | if (skb->len > mtu) { | 745 | if (skb->len > mtu) { |
746 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); | 746 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
747 | ip_rt_put(rt); | 747 | ip_rt_put(rt); |
748 | goto tx_error; | 748 | goto tx_error; |
749 | } | 749 | } |
diff --git a/net/ipv6/tunnel6.c b/net/ipv6/tunnel6.c index 51e2832d13a6..e17bc1dfc1a4 100644 --- a/net/ipv6/tunnel6.c +++ b/net/ipv6/tunnel6.c | |||
@@ -98,7 +98,7 @@ static int tunnel6_rcv(struct sk_buff *skb) | |||
98 | if (!handler->handler(skb)) | 98 | if (!handler->handler(skb)) |
99 | return 0; | 99 | return 0; |
100 | 100 | ||
101 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, skb->dev); | 101 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0); |
102 | 102 | ||
103 | drop: | 103 | drop: |
104 | kfree_skb(skb); | 104 | kfree_skb(skb); |
@@ -116,7 +116,7 @@ static int tunnel46_rcv(struct sk_buff *skb) | |||
116 | if (!handler->handler(skb)) | 116 | if (!handler->handler(skb)) |
117 | return 0; | 117 | return 0; |
118 | 118 | ||
119 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, skb->dev); | 119 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0); |
120 | 120 | ||
121 | drop: | 121 | drop: |
122 | kfree_skb(skb); | 122 | kfree_skb(skb); |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index a7af9d68cd6c..52b8347ae3b2 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -680,12 +680,11 @@ static inline int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, | |||
680 | int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, | 680 | int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, |
681 | int proto) | 681 | int proto) |
682 | { | 682 | { |
683 | struct net *net = dev_net(skb->dev); | ||
683 | struct sock *sk; | 684 | struct sock *sk; |
684 | struct udphdr *uh; | 685 | struct udphdr *uh; |
685 | struct net_device *dev = skb->dev; | ||
686 | struct in6_addr *saddr, *daddr; | 686 | struct in6_addr *saddr, *daddr; |
687 | u32 ulen = 0; | 687 | u32 ulen = 0; |
688 | struct net *net = dev_net(skb->dev); | ||
689 | 688 | ||
690 | if (!pskb_may_pull(skb, sizeof(struct udphdr))) | 689 | if (!pskb_may_pull(skb, sizeof(struct udphdr))) |
691 | goto short_packet; | 690 | goto short_packet; |
@@ -744,7 +743,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, | |||
744 | UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, | 743 | UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, |
745 | proto == IPPROTO_UDPLITE); | 744 | proto == IPPROTO_UDPLITE); |
746 | 745 | ||
747 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, dev); | 746 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0); |
748 | 747 | ||
749 | kfree_skb(skb); | 748 | kfree_skb(skb); |
750 | return 0; | 749 | return 0; |
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c index c4f4eef032a3..0c92112dcba3 100644 --- a/net/ipv6/xfrm6_output.c +++ b/net/ipv6/xfrm6_output.c | |||
@@ -38,7 +38,7 @@ static int xfrm6_tunnel_check_size(struct sk_buff *skb) | |||
38 | 38 | ||
39 | if (!skb->local_df && skb->len > mtu) { | 39 | if (!skb->local_df && skb->len > mtu) { |
40 | skb->dev = dst->dev; | 40 | skb->dev = dst->dev; |
41 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 41 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
42 | ret = -EMSGSIZE; | 42 | ret = -EMSGSIZE; |
43 | } | 43 | } |
44 | 44 | ||
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c index 72e96d823ebf..44590887a92c 100644 --- a/net/netfilter/ipvs/ip_vs_core.c +++ b/net/netfilter/ipvs/ip_vs_core.c | |||
@@ -515,8 +515,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, | |||
515 | */ | 515 | */ |
516 | #ifdef CONFIG_IP_VS_IPV6 | 516 | #ifdef CONFIG_IP_VS_IPV6 |
517 | if (svc->af == AF_INET6) | 517 | if (svc->af == AF_INET6) |
518 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, | 518 | icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0); |
519 | skb->dev); | ||
520 | else | 519 | else |
521 | #endif | 520 | #endif |
522 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); | 521 | icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); |
@@ -1048,7 +1047,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff *skb, | |||
1048 | icmpv6_send(skb, | 1047 | icmpv6_send(skb, |
1049 | ICMPV6_DEST_UNREACH, | 1048 | ICMPV6_DEST_UNREACH, |
1050 | ICMPV6_PORT_UNREACH, | 1049 | ICMPV6_PORT_UNREACH, |
1051 | 0, skb->dev); | 1050 | 0); |
1052 | else | 1051 | else |
1053 | #endif | 1052 | #endif |
1054 | icmp_send(skb, | 1053 | icmp_send(skb, |
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c index 30b3189bd29c..223b5018c7dc 100644 --- a/net/netfilter/ipvs/ip_vs_xmit.c +++ b/net/netfilter/ipvs/ip_vs_xmit.c | |||
@@ -311,7 +311,7 @@ ip_vs_bypass_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
311 | mtu = dst_mtu(&rt->u.dst); | 311 | mtu = dst_mtu(&rt->u.dst); |
312 | if (skb->len > mtu) { | 312 | if (skb->len > mtu) { |
313 | dst_release(&rt->u.dst); | 313 | dst_release(&rt->u.dst); |
314 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 314 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
315 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); | 315 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); |
316 | goto tx_error; | 316 | goto tx_error; |
317 | } | 317 | } |
@@ -454,7 +454,7 @@ ip_vs_nat_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
454 | mtu = dst_mtu(&rt->u.dst); | 454 | mtu = dst_mtu(&rt->u.dst); |
455 | if (skb->len > mtu) { | 455 | if (skb->len > mtu) { |
456 | dst_release(&rt->u.dst); | 456 | dst_release(&rt->u.dst); |
457 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 457 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
458 | IP_VS_DBG_RL_PKT(0, pp, skb, 0, | 458 | IP_VS_DBG_RL_PKT(0, pp, skb, 0, |
459 | "ip_vs_nat_xmit_v6(): frag needed for"); | 459 | "ip_vs_nat_xmit_v6(): frag needed for"); |
460 | goto tx_error; | 460 | goto tx_error; |
@@ -672,7 +672,7 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
672 | skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); | 672 | skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); |
673 | 673 | ||
674 | if (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr)) { | 674 | if (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr)) { |
675 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 675 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
676 | dst_release(&rt->u.dst); | 676 | dst_release(&rt->u.dst); |
677 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); | 677 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); |
678 | goto tx_error; | 678 | goto tx_error; |
@@ -814,7 +814,7 @@ ip_vs_dr_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
814 | /* MTU checking */ | 814 | /* MTU checking */ |
815 | mtu = dst_mtu(&rt->u.dst); | 815 | mtu = dst_mtu(&rt->u.dst); |
816 | if (skb->len > mtu) { | 816 | if (skb->len > mtu) { |
817 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 817 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
818 | dst_release(&rt->u.dst); | 818 | dst_release(&rt->u.dst); |
819 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); | 819 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); |
820 | goto tx_error; | 820 | goto tx_error; |
@@ -965,7 +965,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, | |||
965 | mtu = dst_mtu(&rt->u.dst); | 965 | mtu = dst_mtu(&rt->u.dst); |
966 | if (skb->len > mtu) { | 966 | if (skb->len > mtu) { |
967 | dst_release(&rt->u.dst); | 967 | dst_release(&rt->u.dst); |
968 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); | 968 | icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu); |
969 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); | 969 | IP_VS_DBG_RL("%s(): frag needed\n", __func__); |
970 | goto tx_error; | 970 | goto tx_error; |
971 | } | 971 | } |