diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-04-16 04:05:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-16 04:05:57 -0400 |
commit | b99f0152e5f96dde31d2b9060b4f1029abc11078 (patch) | |
tree | 6e71dcc55e5b36a7819f7521c0fa930b04143aac /net | |
parent | 44d3c299dcfee094f10e0c686ad6588fd36d4f8f (diff) |
[IPIP]: Use proper net in (mostly) routing calls.
There are some ip_route_output_key() calls in there that require
a proper net so give one to them.
Besides - give a proper net to a single __get_dev_by_index call
in ipip_tunnel_bind_dev().
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/ipip.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c index 9c2939ba7b94..1de39e1dc432 100644 --- a/net/ipv4/ipip.c +++ b/net/ipv4/ipip.c | |||
@@ -415,7 +415,7 @@ out: | |||
415 | fl.fl4_daddr = eiph->saddr; | 415 | fl.fl4_daddr = eiph->saddr; |
416 | fl.fl4_tos = RT_TOS(eiph->tos); | 416 | fl.fl4_tos = RT_TOS(eiph->tos); |
417 | fl.proto = IPPROTO_IPIP; | 417 | fl.proto = IPPROTO_IPIP; |
418 | if (ip_route_output_key(&init_net, &rt, &key)) { | 418 | if (ip_route_output_key(dev_net(skb->dev), &rt, &key)) { |
419 | kfree_skb(skb2); | 419 | kfree_skb(skb2); |
420 | return 0; | 420 | return 0; |
421 | } | 421 | } |
@@ -428,7 +428,7 @@ out: | |||
428 | fl.fl4_daddr = eiph->daddr; | 428 | fl.fl4_daddr = eiph->daddr; |
429 | fl.fl4_src = eiph->saddr; | 429 | fl.fl4_src = eiph->saddr; |
430 | fl.fl4_tos = eiph->tos; | 430 | fl.fl4_tos = eiph->tos; |
431 | if (ip_route_output_key(&init_net, &rt, &fl) || | 431 | if (ip_route_output_key(dev_net(skb->dev), &rt, &fl) || |
432 | rt->u.dst.dev->type != ARPHRD_TUNNEL) { | 432 | rt->u.dst.dev->type != ARPHRD_TUNNEL) { |
433 | ip_rt_put(rt); | 433 | ip_rt_put(rt); |
434 | kfree_skb(skb2); | 434 | kfree_skb(skb2); |
@@ -558,7 +558,7 @@ static int ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) | |||
558 | .saddr = tiph->saddr, | 558 | .saddr = tiph->saddr, |
559 | .tos = RT_TOS(tos) } }, | 559 | .tos = RT_TOS(tos) } }, |
560 | .proto = IPPROTO_IPIP }; | 560 | .proto = IPPROTO_IPIP }; |
561 | if (ip_route_output_key(&init_net, &rt, &fl)) { | 561 | if (ip_route_output_key(dev_net(dev), &rt, &fl)) { |
562 | tunnel->stat.tx_carrier_errors++; | 562 | tunnel->stat.tx_carrier_errors++; |
563 | goto tx_error_icmp; | 563 | goto tx_error_icmp; |
564 | } | 564 | } |
@@ -679,7 +679,7 @@ static void ipip_tunnel_bind_dev(struct net_device *dev) | |||
679 | .tos = RT_TOS(iph->tos) } }, | 679 | .tos = RT_TOS(iph->tos) } }, |
680 | .proto = IPPROTO_IPIP }; | 680 | .proto = IPPROTO_IPIP }; |
681 | struct rtable *rt; | 681 | struct rtable *rt; |
682 | if (!ip_route_output_key(&init_net, &rt, &fl)) { | 682 | if (!ip_route_output_key(dev_net(dev), &rt, &fl)) { |
683 | tdev = rt->u.dst.dev; | 683 | tdev = rt->u.dst.dev; |
684 | ip_rt_put(rt); | 684 | ip_rt_put(rt); |
685 | } | 685 | } |
@@ -687,7 +687,7 @@ static void ipip_tunnel_bind_dev(struct net_device *dev) | |||
687 | } | 687 | } |
688 | 688 | ||
689 | if (!tdev && tunnel->parms.link) | 689 | if (!tdev && tunnel->parms.link) |
690 | tdev = __dev_get_by_index(&init_net, tunnel->parms.link); | 690 | tdev = __dev_get_by_index(dev_net(dev), tunnel->parms.link); |
691 | 691 | ||
692 | if (tdev) { | 692 | if (tdev) { |
693 | dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); | 693 | dev->hard_header_len = tdev->hard_header_len + sizeof(struct iphdr); |