From patchwork Fri Dec 6 17:25:56 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hannes Frederic Sowa X-Patchwork-Id: 298126 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 61FA92C00A0 for ; Sat, 7 Dec 2013 04:26:03 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756681Ab3LFRZ7 (ORCPT ); Fri, 6 Dec 2013 12:25:59 -0500 Received: from order.stressinduktion.org ([87.106.68.36]:36665 "EHLO order.stressinduktion.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754641Ab3LFRZ6 (ORCPT ); Fri, 6 Dec 2013 12:25:58 -0500 Received: by order.stressinduktion.org (Postfix, from userid 500) id 344191A0C2D1; Fri, 6 Dec 2013 18:25:57 +0100 (CET) Date: Fri, 6 Dec 2013 18:25:56 +0100 From: Hannes Frederic Sowa To: netdev@vger.kernel.org Cc: brett.ciphery@windriver.com Subject: [PATCH] ipv6: don't count addrconf generated routes against gc limit Message-ID: <20131206172556.GF26746@order.stressinduktion.org> Mail-Followup-To: netdev@vger.kernel.org, brett.ciphery@windriver.com Mime-Version: 1.0 Content-Disposition: inline Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org 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 Signed-off-by: Hannes Frederic Sowa --- net/ipv6/route.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index ddb9d41..11fdf1f 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2166,7 +2166,8 @@ 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); + struct rt6_info *rt = ip6_dst_alloc(net, net->loopback_dev, + DST_NOCOUNT, NULL); if (!rt) { net_warn_ratelimited("Maximum number of routes reached, consider increasing route/max_size\n");