diff options
| -rw-r--r-- | net/ipv6/route.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 9de4d2bcd916..c95c3197c186 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c | |||
| @@ -318,8 +318,7 @@ static const struct rt6_info ip6_blk_hole_entry_template = { | |||
| 318 | /* allocate dst with ip6_dst_ops */ | 318 | /* allocate dst with ip6_dst_ops */ |
| 319 | static struct rt6_info *__ip6_dst_alloc(struct net *net, | 319 | static struct rt6_info *__ip6_dst_alloc(struct net *net, |
| 320 | struct net_device *dev, | 320 | struct net_device *dev, |
| 321 | int flags, | 321 | int flags) |
| 322 | struct fib6_table *table) | ||
| 323 | { | 322 | { |
| 324 | struct rt6_info *rt = dst_alloc(&net->ipv6.ip6_dst_ops, dev, | 323 | struct rt6_info *rt = dst_alloc(&net->ipv6.ip6_dst_ops, dev, |
| 325 | 0, DST_OBSOLETE_FORCE_CHK, flags); | 324 | 0, DST_OBSOLETE_FORCE_CHK, flags); |
| @@ -336,10 +335,9 @@ static struct rt6_info *__ip6_dst_alloc(struct net *net, | |||
| 336 | 335 | ||
| 337 | static struct rt6_info *ip6_dst_alloc(struct net *net, | 336 | static struct rt6_info *ip6_dst_alloc(struct net *net, |
| 338 | struct net_device *dev, | 337 | struct net_device *dev, |
| 339 | int flags, | 338 | int flags) |
| 340 | struct fib6_table *table) | ||
| 341 | { | 339 | { |
| 342 | struct rt6_info *rt = __ip6_dst_alloc(net, dev, flags, table); | 340 | struct rt6_info *rt = __ip6_dst_alloc(net, dev, flags); |
| 343 | 341 | ||
| 344 | if (rt) { | 342 | if (rt) { |
| 345 | rt->rt6i_pcpu = alloc_percpu_gfp(struct rt6_info *, GFP_ATOMIC); | 343 | rt->rt6i_pcpu = alloc_percpu_gfp(struct rt6_info *, GFP_ATOMIC); |
| @@ -950,8 +948,7 @@ static struct rt6_info *ip6_rt_cache_alloc(struct rt6_info *ort, | |||
| 950 | if (ort->rt6i_flags & (RTF_CACHE | RTF_PCPU)) | 948 | if (ort->rt6i_flags & (RTF_CACHE | RTF_PCPU)) |
| 951 | ort = (struct rt6_info *)ort->dst.from; | 949 | ort = (struct rt6_info *)ort->dst.from; |
| 952 | 950 | ||
| 953 | rt = __ip6_dst_alloc(dev_net(ort->dst.dev), ort->dst.dev, | 951 | rt = __ip6_dst_alloc(dev_net(ort->dst.dev), ort->dst.dev, 0); |
| 954 | 0, ort->rt6i_table); | ||
| 955 | 952 | ||
| 956 | if (!rt) | 953 | if (!rt) |
| 957 | return NULL; | 954 | return NULL; |
| @@ -983,8 +980,7 @@ static struct rt6_info *ip6_rt_pcpu_alloc(struct rt6_info *rt) | |||
| 983 | struct rt6_info *pcpu_rt; | 980 | struct rt6_info *pcpu_rt; |
| 984 | 981 | ||
| 985 | pcpu_rt = __ip6_dst_alloc(dev_net(rt->dst.dev), | 982 | pcpu_rt = __ip6_dst_alloc(dev_net(rt->dst.dev), |
| 986 | rt->dst.dev, rt->dst.flags, | 983 | rt->dst.dev, rt->dst.flags); |
| 987 | rt->rt6i_table); | ||
| 988 | 984 | ||
| 989 | if (!pcpu_rt) | 985 | if (!pcpu_rt) |
| 990 | return NULL; | 986 | return NULL; |
| @@ -1555,7 +1551,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, | |||
| 1555 | if (unlikely(!idev)) | 1551 | if (unlikely(!idev)) |
| 1556 | return ERR_PTR(-ENODEV); | 1552 | return ERR_PTR(-ENODEV); |
| 1557 | 1553 | ||
| 1558 | rt = ip6_dst_alloc(net, dev, 0, NULL); | 1554 | rt = ip6_dst_alloc(net, dev, 0); |
| 1559 | if (unlikely(!rt)) { | 1555 | if (unlikely(!rt)) { |
| 1560 | in6_dev_put(idev); | 1556 | in6_dev_put(idev); |
| 1561 | dst = ERR_PTR(-ENOMEM); | 1557 | dst = ERR_PTR(-ENOMEM); |
| @@ -1742,7 +1738,8 @@ int ip6_route_add(struct fib6_config *cfg) | |||
| 1742 | if (!table) | 1738 | if (!table) |
| 1743 | goto out; | 1739 | goto out; |
| 1744 | 1740 | ||
| 1745 | rt = ip6_dst_alloc(net, NULL, (cfg->fc_flags & RTF_ADDRCONF) ? 0 : DST_NOCOUNT, table); | 1741 | rt = ip6_dst_alloc(net, NULL, |
| 1742 | (cfg->fc_flags & RTF_ADDRCONF) ? 0 : DST_NOCOUNT); | ||
| 1746 | 1743 | ||
| 1747 | if (!rt) { | 1744 | if (!rt) { |
| 1748 | err = -ENOMEM; | 1745 | err = -ENOMEM; |
| @@ -2399,7 +2396,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev, | |||
| 2399 | { | 2396 | { |
| 2400 | struct net *net = dev_net(idev->dev); | 2397 | struct net *net = dev_net(idev->dev); |
| 2401 | struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, | 2398 | struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, |
| 2402 | DST_NOCOUNT, NULL); | 2399 | DST_NOCOUNT); |
| 2403 | if (!rt) | 2400 | if (!rt) |
| 2404 | return ERR_PTR(-ENOMEM); | 2401 | return ERR_PTR(-ENOMEM); |
| 2405 | 2402 | ||
