diff options
Diffstat (limited to 'net/ipv6/sit.c')
-rw-r--r-- | net/ipv6/sit.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index d6bfaec3bbbf..6e48a80d0f25 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c | |||
@@ -730,10 +730,9 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, | |||
730 | } | 730 | } |
731 | 731 | ||
732 | { | 732 | { |
733 | struct flowi fl = { .nl_u = { .ip4_u = | 733 | struct flowi fl = { .fl4_dst = dst, |
734 | { .daddr = dst, | 734 | .fl4_src = tiph->saddr, |
735 | .saddr = tiph->saddr, | 735 | .fl4_tos = RT_TOS(tos), |
736 | .tos = RT_TOS(tos) } }, | ||
737 | .oif = tunnel->parms.link, | 736 | .oif = tunnel->parms.link, |
738 | .proto = IPPROTO_IPV6 }; | 737 | .proto = IPPROTO_IPV6 }; |
739 | if (ip_route_output_key(dev_net(dev), &rt, &fl)) { | 738 | if (ip_route_output_key(dev_net(dev), &rt, &fl)) { |
@@ -855,10 +854,9 @@ static void ipip6_tunnel_bind_dev(struct net_device *dev) | |||
855 | iph = &tunnel->parms.iph; | 854 | iph = &tunnel->parms.iph; |
856 | 855 | ||
857 | if (iph->daddr) { | 856 | if (iph->daddr) { |
858 | struct flowi fl = { .nl_u = { .ip4_u = | 857 | struct flowi fl = { .fl4_dst = iph->daddr, |
859 | { .daddr = iph->daddr, | 858 | .fl4_src = iph->saddr, |
860 | .saddr = iph->saddr, | 859 | .fl4_tos = RT_TOS(iph->tos), |
861 | .tos = RT_TOS(iph->tos) } }, | ||
862 | .oif = tunnel->parms.link, | 860 | .oif = tunnel->parms.link, |
863 | .proto = IPPROTO_IPV6 }; | 861 | .proto = IPPROTO_IPV6 }; |
864 | struct rtable *rt; | 862 | struct rtable *rt; |