ipv6: don't count addrconf generated routes against gc limit
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>
This commit is contained in:
parent
6a46ff87d4
commit
a3300ef4bb
1 changed files with 3 additions and 5 deletions
|
@ -2166,12 +2166,10 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
|
|||
bool anycast)
|
||||
{
|
||||
struct net *net = dev_net(idev->dev);
|
||||
struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, 0, NULL);
|
||||
|
||||
if (!rt) {
|
||||
net_warn_ratelimited("Maximum number of routes reached, consider increasing route/max_size\n");
|
||||
struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev,
|
||||
DST_NOCOUNT, NULL);
|
||||
if (!rt)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
in6_dev_hold(idev);
|
||||
|
||||
|
|
Loading…
Reference in a new issue