Commit 3ffe533c authored by Alexey Dobriyan's avatar Alexey Dobriyan Committed by David S. Miller

ipv6: drop unused "dev" arg of icmpv6_send()

Dunno, what was the idea, it wasn't used for a long time.
Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bbef49da
...@@ -1374,7 +1374,7 @@ static void ipoib_cm_skb_reap(struct work_struct *work) ...@@ -1374,7 +1374,7 @@ static void ipoib_cm_skb_reap(struct work_struct *work)
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu));
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
else if (skb->protocol == htons(ETH_P_IPV6)) else if (skb->protocol == htons(ETH_P_IPV6))
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, priv->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
#endif #endif
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
......
...@@ -174,8 +174,7 @@ struct icmp6_filter { ...@@ -174,8 +174,7 @@ struct icmp6_filter {
extern void icmpv6_send(struct sk_buff *skb, extern void icmpv6_send(struct sk_buff *skb,
u8 type, u8 code, u8 type, u8 code,
__u32 info, __u32 info);
struct net_device *dev);
extern int icmpv6_init(void); extern int icmpv6_init(void);
extern int icmpv6_err_convert(u8 type, u8 code, extern int icmpv6_err_convert(u8 type, u8 code,
......
...@@ -793,7 +793,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev ...@@ -793,7 +793,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev
} }
if (mtu >= IPV6_MIN_MTU && mtu < skb->len - tunnel->hlen + gre_hlen) { if (mtu >= IPV6_MIN_MTU && mtu < skb->len - tunnel->hlen + gre_hlen) {
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
ip_rt_put(rt); ip_rt_put(rt);
goto tx_error; goto tx_error;
} }
......
...@@ -481,7 +481,7 @@ static int ipv6_rthdr_rcv(struct sk_buff *skb) ...@@ -481,7 +481,7 @@ static int ipv6_rthdr_rcv(struct sk_buff *skb)
IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)), IP6_INC_STATS_BH(net, ip6_dst_idev(skb_dst(skb)),
IPSTATS_MIB_INHDRERRORS); IPSTATS_MIB_INHDRERRORS);
icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT,
0, skb->dev); 0);
kfree_skb(skb); kfree_skb(skb);
return -1; return -1;
} }
......
...@@ -114,7 +114,7 @@ static __inline__ void icmpv6_xmit_unlock(struct sock *sk) ...@@ -114,7 +114,7 @@ static __inline__ void icmpv6_xmit_unlock(struct sock *sk)
*/ */
void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos) void icmpv6_param_prob(struct sk_buff *skb, u8 code, int pos)
{ {
icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos);
kfree_skb(skb); kfree_skb(skb);
} }
...@@ -300,8 +300,7 @@ static inline void mip6_addr_swap(struct sk_buff *skb) {} ...@@ -300,8 +300,7 @@ static inline void mip6_addr_swap(struct sk_buff *skb) {}
/* /*
* Send an ICMP message in response to a packet in error * Send an ICMP message in response to a packet in error
*/ */
void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info, void icmpv6_send(struct sk_buff *skb, u8 type, u8 code, __u32 info)
struct net_device *dev)
{ {
struct net *net = dev_net(skb->dev); struct net *net = dev_net(skb->dev);
struct inet6_dev *idev = NULL; struct inet6_dev *idev = NULL;
......
...@@ -216,8 +216,7 @@ static int ip6_input_finish(struct sk_buff *skb) ...@@ -216,8 +216,7 @@ static int ip6_input_finish(struct sk_buff *skb)
IP6_INC_STATS_BH(net, idev, IP6_INC_STATS_BH(net, idev,
IPSTATS_MIB_INUNKNOWNPROTOS); IPSTATS_MIB_INUNKNOWNPROTOS);
icmpv6_send(skb, ICMPV6_PARAMPROB, icmpv6_send(skb, ICMPV6_PARAMPROB,
ICMPV6_UNK_NEXTHDR, nhoff, ICMPV6_UNK_NEXTHDR, nhoff);
skb->dev);
} }
} else } else
IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDELIVERS); IP6_INC_STATS_BH(net, idev, IPSTATS_MIB_INDELIVERS);
......
...@@ -267,7 +267,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, ...@@ -267,7 +267,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "IPv6: sending pkt_too_big to self\n"); printk(KERN_DEBUG "IPv6: sending pkt_too_big to self\n");
skb->dev = dst->dev; skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS); IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IPSTATS_MIB_FRAGFAILS);
kfree_skb(skb); kfree_skb(skb);
return -EMSGSIZE; return -EMSGSIZE;
...@@ -441,8 +441,7 @@ int ip6_forward(struct sk_buff *skb) ...@@ -441,8 +441,7 @@ int ip6_forward(struct sk_buff *skb)
if (hdr->hop_limit <= 1) { if (hdr->hop_limit <= 1) {
/* Force OUTPUT device used as source address */ /* Force OUTPUT device used as source address */
skb->dev = dst->dev; skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, icmpv6_send(skb, ICMPV6_TIME_EXCEED, ICMPV6_EXC_HOPLIMIT, 0);
0, skb->dev);
IP6_INC_STATS_BH(net, IP6_INC_STATS_BH(net,
ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS); ip6_dst_idev(dst), IPSTATS_MIB_INHDRERRORS);
...@@ -504,7 +503,7 @@ int ip6_forward(struct sk_buff *skb) ...@@ -504,7 +503,7 @@ int ip6_forward(struct sk_buff *skb)
goto error; goto error;
if (addrtype & IPV6_ADDR_LINKLOCAL) { if (addrtype & IPV6_ADDR_LINKLOCAL) {
icmpv6_send(skb, ICMPV6_DEST_UNREACH, icmpv6_send(skb, ICMPV6_DEST_UNREACH,
ICMPV6_NOT_NEIGHBOUR, 0, skb->dev); ICMPV6_NOT_NEIGHBOUR, 0);
goto error; goto error;
} }
} }
...@@ -512,7 +511,7 @@ int ip6_forward(struct sk_buff *skb) ...@@ -512,7 +511,7 @@ int ip6_forward(struct sk_buff *skb)
if (skb->len > dst_mtu(dst)) { if (skb->len > dst_mtu(dst)) {
/* Again, force OUTPUT device used as source address */ /* Again, force OUTPUT device used as source address */
skb->dev = dst->dev; skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_mtu(dst), skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_mtu(dst));
IP6_INC_STATS_BH(net, IP6_INC_STATS_BH(net,
ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS); ip6_dst_idev(dst), IPSTATS_MIB_INTOOBIGERRORS);
IP6_INC_STATS_BH(net, IP6_INC_STATS_BH(net,
...@@ -627,7 +626,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) ...@@ -627,7 +626,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
*/ */
if (!skb->local_df) { if (!skb->local_df) {
skb->dev = skb_dst(skb)->dev; skb->dev = skb_dst(skb)->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)), IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
IPSTATS_MIB_FRAGFAILS); IPSTATS_MIB_FRAGFAILS);
kfree_skb(skb); kfree_skb(skb);
......
...@@ -622,7 +622,7 @@ ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt, ...@@ -622,7 +622,7 @@ ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if (rt && rt->rt6i_dev) if (rt && rt->rt6i_dev)
skb2->dev = rt->rt6i_dev; skb2->dev = rt->rt6i_dev;
icmpv6_send(skb2, rel_type, rel_code, rel_info, skb2->dev); icmpv6_send(skb2, rel_type, rel_code, rel_info);
if (rt) if (rt)
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
...@@ -1014,7 +1014,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1014,7 +1014,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
tel = (struct ipv6_tlv_tnl_enc_lim *)&skb_network_header(skb)[offset]; tel = (struct ipv6_tlv_tnl_enc_lim *)&skb_network_header(skb)[offset];
if (tel->encap_limit == 0) { if (tel->encap_limit == 0) {
icmpv6_send(skb, ICMPV6_PARAMPROB, icmpv6_send(skb, ICMPV6_PARAMPROB,
ICMPV6_HDR_FIELD, offset + 2, skb->dev); ICMPV6_HDR_FIELD, offset + 2);
return -1; return -1;
} }
encap_limit = tel->encap_limit - 1; encap_limit = tel->encap_limit - 1;
...@@ -1033,7 +1033,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -1033,7 +1033,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
err = ip6_tnl_xmit2(skb, dev, dsfield, &fl, encap_limit, &mtu); err = ip6_tnl_xmit2(skb, dev, dsfield, &fl, encap_limit, &mtu);
if (err != 0) { if (err != 0) {
if (err == -EMSGSIZE) if (err == -EMSGSIZE)
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
return -1; return -1;
} }
......
...@@ -56,7 +56,7 @@ static inline void *mip6_padn(__u8 *data, __u8 padlen) ...@@ -56,7 +56,7 @@ static inline void *mip6_padn(__u8 *data, __u8 padlen)
static inline void mip6_param_prob(struct sk_buff *skb, u8 code, int pos) static inline void mip6_param_prob(struct sk_buff *skb, u8 code, int pos)
{ {
icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos, skb->dev); icmpv6_send(skb, ICMPV6_PARAMPROB, code, pos);
} }
static int mip6_mh_len(int type) static int mip6_mh_len(int type)
......
...@@ -169,7 +169,7 @@ send_unreach(struct net *net, struct sk_buff *skb_in, unsigned char code, ...@@ -169,7 +169,7 @@ send_unreach(struct net *net, struct sk_buff *skb_in, unsigned char code,
if (hooknum == NF_INET_LOCAL_OUT && skb_in->dev == NULL) if (hooknum == NF_INET_LOCAL_OUT && skb_in->dev == NULL)
skb_in->dev = net->loopback_dev; skb_in->dev = net->loopback_dev;
icmpv6_send(skb_in, ICMPV6_DEST_UNREACH, code, 0, NULL); icmpv6_send(skb_in, ICMPV6_DEST_UNREACH, code, 0);
} }
static unsigned int static unsigned int
......
...@@ -228,7 +228,7 @@ static void ip6_frag_expire(unsigned long data) ...@@ -228,7 +228,7 @@ static void ip6_frag_expire(unsigned long data)
pointer directly, device might already disappeared. pointer directly, device might already disappeared.
*/ */
fq->q.fragments->dev = dev; fq->q.fragments->dev = dev;
icmpv6_send(fq->q.fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0, dev); icmpv6_send(fq->q.fragments, ICMPV6_TIME_EXCEED, ICMPV6_EXC_FRAGTIME, 0);
out_rcu_unlock: out_rcu_unlock:
rcu_read_unlock(); rcu_read_unlock();
out: out:
......
...@@ -909,7 +909,7 @@ static void ip6_link_failure(struct sk_buff *skb) ...@@ -909,7 +909,7 @@ static void ip6_link_failure(struct sk_buff *skb)
{ {
struct rt6_info *rt; struct rt6_info *rt;
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0, skb->dev); icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0);
rt = (struct rt6_info *) skb_dst(skb); rt = (struct rt6_info *) skb_dst(skb);
if (rt) { if (rt) {
...@@ -1884,7 +1884,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes) ...@@ -1884,7 +1884,7 @@ static int ip6_pkt_drop(struct sk_buff *skb, u8 code, int ipstats_mib_noroutes)
ipstats_mib_noroutes); ipstats_mib_noroutes);
break; break;
} }
icmpv6_send(skb, ICMPV6_DEST_UNREACH, code, 0, skb->dev); icmpv6_send(skb, ICMPV6_DEST_UNREACH, code, 0);
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
} }
......
...@@ -743,7 +743,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, ...@@ -743,7 +743,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb,
skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu);
if (skb->len > mtu) { if (skb->len > mtu) {
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
ip_rt_put(rt); ip_rt_put(rt);
goto tx_error; goto tx_error;
} }
......
...@@ -98,7 +98,7 @@ static int tunnel6_rcv(struct sk_buff *skb) ...@@ -98,7 +98,7 @@ static int tunnel6_rcv(struct sk_buff *skb)
if (!handler->handler(skb)) if (!handler->handler(skb))
return 0; return 0;
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, skb->dev); icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
drop: drop:
kfree_skb(skb); kfree_skb(skb);
...@@ -116,7 +116,7 @@ static int tunnel46_rcv(struct sk_buff *skb) ...@@ -116,7 +116,7 @@ static int tunnel46_rcv(struct sk_buff *skb)
if (!handler->handler(skb)) if (!handler->handler(skb))
return 0; return 0;
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, skb->dev); icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
drop: drop:
kfree_skb(skb); kfree_skb(skb);
......
...@@ -680,12 +680,11 @@ static inline int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh, ...@@ -680,12 +680,11 @@ static inline int udp6_csum_init(struct sk_buff *skb, struct udphdr *uh,
int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
int proto) int proto)
{ {
struct net *net = dev_net(skb->dev);
struct sock *sk; struct sock *sk;
struct udphdr *uh; struct udphdr *uh;
struct net_device *dev = skb->dev;
struct in6_addr *saddr, *daddr; struct in6_addr *saddr, *daddr;
u32 ulen = 0; u32 ulen = 0;
struct net *net = dev_net(skb->dev);
if (!pskb_may_pull(skb, sizeof(struct udphdr))) if (!pskb_may_pull(skb, sizeof(struct udphdr)))
goto short_packet; goto short_packet;
...@@ -744,7 +743,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, ...@@ -744,7 +743,7 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS,
proto == IPPROTO_UDPLITE); proto == IPPROTO_UDPLITE);
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, dev); icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
kfree_skb(skb); kfree_skb(skb);
return 0; return 0;
......
...@@ -38,7 +38,7 @@ static int xfrm6_tunnel_check_size(struct sk_buff *skb) ...@@ -38,7 +38,7 @@ static int xfrm6_tunnel_check_size(struct sk_buff *skb)
if (!skb->local_df && skb->len > mtu) { if (!skb->local_df && skb->len > mtu) {
skb->dev = dst->dev; skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
ret = -EMSGSIZE; ret = -EMSGSIZE;
} }
......
...@@ -515,8 +515,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, ...@@ -515,8 +515,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
*/ */
#ifdef CONFIG_IP_VS_IPV6 #ifdef CONFIG_IP_VS_IPV6
if (svc->af == AF_INET6) if (svc->af == AF_INET6)
icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0, icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
skb->dev);
else else
#endif #endif
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); 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,7 +1047,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff *skb,
icmpv6_send(skb, icmpv6_send(skb,
ICMPV6_DEST_UNREACH, ICMPV6_DEST_UNREACH,
ICMPV6_PORT_UNREACH, ICMPV6_PORT_UNREACH,
0, skb->dev); 0);
else else
#endif #endif
icmp_send(skb, icmp_send(skb,
......
...@@ -311,7 +311,7 @@ ip_vs_bypass_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -311,7 +311,7 @@ ip_vs_bypass_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
mtu = dst_mtu(&rt->u.dst); mtu = dst_mtu(&rt->u.dst);
if (skb->len > mtu) { if (skb->len > mtu) {
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP_VS_DBG_RL("%s(): frag needed\n", __func__); IP_VS_DBG_RL("%s(): frag needed\n", __func__);
goto tx_error; goto tx_error;
} }
...@@ -454,7 +454,7 @@ ip_vs_nat_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -454,7 +454,7 @@ ip_vs_nat_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
mtu = dst_mtu(&rt->u.dst); mtu = dst_mtu(&rt->u.dst);
if (skb->len > mtu) { if (skb->len > mtu) {
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP_VS_DBG_RL_PKT(0, pp, skb, 0, IP_VS_DBG_RL_PKT(0, pp, skb, 0,
"ip_vs_nat_xmit_v6(): frag needed for"); "ip_vs_nat_xmit_v6(): frag needed for");
goto tx_error; goto tx_error;
...@@ -672,7 +672,7 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -672,7 +672,7 @@ ip_vs_tunnel_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu); skb_dst(skb)->ops->update_pmtu(skb_dst(skb), mtu);
if (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr)) { if (mtu < ntohs(old_iph->payload_len) + sizeof(struct ipv6hdr)) {
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
IP_VS_DBG_RL("%s(): frag needed\n", __func__); IP_VS_DBG_RL("%s(): frag needed\n", __func__);
goto tx_error; goto tx_error;
...@@ -814,7 +814,7 @@ ip_vs_dr_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -814,7 +814,7 @@ ip_vs_dr_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
/* MTU checking */ /* MTU checking */
mtu = dst_mtu(&rt->u.dst); mtu = dst_mtu(&rt->u.dst);
if (skb->len > mtu) { if (skb->len > mtu) {
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
IP_VS_DBG_RL("%s(): frag needed\n", __func__); IP_VS_DBG_RL("%s(): frag needed\n", __func__);
goto tx_error; goto tx_error;
...@@ -965,7 +965,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, ...@@ -965,7 +965,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
mtu = dst_mtu(&rt->u.dst); mtu = dst_mtu(&rt->u.dst);
if (skb->len > mtu) { if (skb->len > mtu) {
dst_release(&rt->u.dst); dst_release(&rt->u.dst);
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu, skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, mtu);
IP_VS_DBG_RL("%s(): frag needed\n", __func__); IP_VS_DBG_RL("%s(): frag needed\n", __func__);
goto tx_error; goto tx_error;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment