diff options
author | David S. Miller <davem@davemloft.net> | 2012-01-24 18:23:30 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-01-24 18:23:30 -0500 |
commit | 61d57f87f3fb04a305f22befabd042ffbec8b852 (patch) | |
tree | ef0596f29c69f50dc2fed1bbc9bf9cfcd879cdd7 /net/ipv4 | |
parent | 658c8d964eb3cdb7e4230a59ba09c75a3359ee4a (diff) |
ip_gre: Fix bug added to ipgre_tunnel_xmit().
We can remove the rt_gateway == 0 check but we shouldn't
remove the 'dst' initialization too.
Noticed by Eric Dumazet.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_gre.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index fc213350a6ed..05f7419ed7c5 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c | |||
@@ -724,8 +724,10 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev | |||
724 | goto tx_error; | 724 | goto tx_error; |
725 | } | 725 | } |
726 | 726 | ||
727 | if (skb->protocol == htons(ETH_P_IP)) | 727 | if (skb->protocol == htons(ETH_P_IP)) { |
728 | rt = skb_rtable(skb); | 728 | rt = skb_rtable(skb); |
729 | dst = rt->rt_gateway; | ||
730 | } | ||
729 | #if IS_ENABLED(CONFIG_IPV6) | 731 | #if IS_ENABLED(CONFIG_IPV6) |
730 | else if (skb->protocol == htons(ETH_P_IPV6)) { | 732 | else if (skb->protocol == htons(ETH_P_IPV6)) { |
731 | struct neighbour *neigh = dst_get_neighbour_noref(skb_dst(skb)); | 733 | struct neighbour *neigh = dst_get_neighbour_noref(skb_dst(skb)); |