summaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-12-07 03:33:45 +0100
committerBen Hutchings <ben@decadent.org.uk>2014-02-15 19:20:08 +0000
commit66d66a815db0a0f42c01031c3e010cf183ae0979 (patch)
tree2e872a7286211174a0d555035c0f5386ff628616 /net
parent2c3178865b995398e3516a3e260c23c65efad90f (diff)
ipv6: don't count addrconf generated routes against gc limit
[ Upstream commit a3300ef4bbb1f1e33ff0400e1e6cf7733d988f4f ] Brett Ciphery reported that new ipv6 addresses failed to get installed because the addrconf generated dsts where counted against the dst gc limit. We don't need to count those routes like we currently don't count administratively added routes. Because the max_addresses check enforces a limit on unbounded address generation first in case someone plays with router advertisments, we are still safe here. Reported-by: Brett Ciphery <brett.ciphery@windriver.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/route.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 1768238c855d..9a4f4377ce92 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2058,15 +2058,11 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
{
struct net *net = dev_net(idev->dev);
struct rt6_info *rt = ip6_dst_alloc(&net->ipv6.ip6_dst_ops,
- net->loopback_dev, 0);
+ net->loopback_dev, DST_NOCOUNT);
struct neighbour *neigh;
- if (rt == NULL) {
- if (net_ratelimit())
- pr_warning("IPv6: Maximum number of routes reached,"
- " consider increasing route/max_size.\n");
+ if (rt == NULL)
return ERR_PTR(-ENOMEM);
- }
in6_dev_hold(idev);