Message ID | 20120124.180937.1535236308212704084.davem@davemloft.net |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Le mardi 24 janvier 2012 à 18:09 -0500, David Miller a écrit : > It can never actually happen. rt_gateway is either the fully resolved > flow lookup key's destination address, or the non-zero FIB entry gateway > address. > > Signed-off-by: David S. Miller <davem@davemloft.net> > --- > > Applied to net-next > > net/ipv4/ip_gre.c | 8 +++----- > net/ipv4/ipip.c | 2 -- > 2 files changed, 3 insertions(+), 7 deletions(-) > > diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c > index 2b53a1f..fc21335 100644 > --- a/net/ipv4/ip_gre.c > +++ b/net/ipv4/ip_gre.c > @@ -724,11 +724,8 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev > goto tx_error; > } > > - if (skb->protocol == htons(ETH_P_IP)) { > + if (skb->protocol == htons(ETH_P_IP)) > rt = skb_rtable(skb); > - if ((dst = rt->rt_gateway) == 0) > - goto tx_error_icmp; > - } > #if IS_ENABLED(CONFIG_IPV6) > else if (skb->protocol == htons(ETH_P_IPV6)) { > struct neighbour *neigh = dst_get_neighbour_noref(skb_dst(skb)); > @@ -910,9 +907,10 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev > __IPTUNNEL_XMIT(tstats, &dev->stats); > return NETDEV_TX_OK; > > +#if IS_ENABLED(CONFIG_IPV6) > tx_error_icmp: > dst_link_failure(skb); > - > +#endif > tx_error: > dev->stats.tx_errors++; > dev_kfree_skb(skb); > diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c > index 413ed1b..be2cbd1 100644 > --- a/net/ipv4/ipip.c > +++ b/net/ipv4/ipip.c > @@ -454,8 +454,6 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) > dev->stats.tx_fifo_errors++; > goto tx_error; > } > - if ((dst = rt->rt_gateway) == 0) > - goto tx_error_icmp; > } > > rt = ip_route_output_ports(dev_net(dev), &fl4, NULL, Hmm... So dst wont be initialized ? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Wed, 25 Jan 2012 00:15:46 +0100 >> @@ -454,8 +454,6 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) >> dev->stats.tx_fifo_errors++; >> goto tx_error; >> } >> - if ((dst = rt->rt_gateway) == 0) >> - goto tx_error_icmp; >> } >> >> rt = ip_route_output_ports(dev_net(dev), &fl4, NULL, > > Hmm... > > So dst wont be initialized ? Grrr, good catch, I'll fix this, thanks Eric. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index 2b53a1f..fc21335 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c @@ -724,11 +724,8 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev goto tx_error; } - if (skb->protocol == htons(ETH_P_IP)) { + if (skb->protocol == htons(ETH_P_IP)) rt = skb_rtable(skb); - if ((dst = rt->rt_gateway) == 0) - goto tx_error_icmp; - } #if IS_ENABLED(CONFIG_IPV6) else if (skb->protocol == htons(ETH_P_IPV6)) { struct neighbour *neigh = dst_get_neighbour_noref(skb_dst(skb)); @@ -910,9 +907,10 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev __IPTUNNEL_XMIT(tstats, &dev->stats); return NETDEV_TX_OK; +#if IS_ENABLED(CONFIG_IPV6) tx_error_icmp: dst_link_failure(skb); - +#endif tx_error: dev->stats.tx_errors++; dev_kfree_skb(skb); diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index 413ed1b..be2cbd1 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c @@ -454,8 +454,6 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) dev->stats.tx_fifo_errors++; goto tx_error; } - if ((dst = rt->rt_gateway) == 0) - goto tx_error_icmp; } rt = ip_route_output_ports(dev_net(dev), &fl4, NULL,
It can never actually happen. rt_gateway is either the fully resolved flow lookup key's destination address, or the non-zero FIB entry gateway address. Signed-off-by: David S. Miller <davem@davemloft.net> --- Applied to net-next net/ipv4/ip_gre.c | 8 +++----- net/ipv4/ipip.c | 2 -- 2 files changed, 3 insertions(+), 7 deletions(-)