From patchwork Wed Apr 18 22:39:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 900425 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="r1qqxBvI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 40RH9Y5Rnbz9s27 for ; Thu, 19 Apr 2018 08:39:29 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753048AbeDRWj0 (ORCPT ); Wed, 18 Apr 2018 18:39:26 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:36442 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752689AbeDRWjV (ORCPT ); Wed, 18 Apr 2018 18:39:21 -0400 Received: by mail-pg0-f66.google.com with SMTP id i6so1532475pgv.3 for ; Wed, 18 Apr 2018 15:39:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=cmW5P1nQX/uFBLhk8qElAHHcDqLvI+TMC+swEGNSWS8=; b=r1qqxBvI3+TWwRRNMHHvzwl94gQdgJGoQMw17jsITWm05K5nvNb+UdhRXAK4YbKeuz 4mi7Y380oEmunkQNTAKUIK1n8JWfG0JVi84KrAdfVVlhhhhO1Oo2VZyJgMnLDnvqJdaS EgOqBB35x8DsYkvyw33WQB94cuVTsJO4kaR6a8kdI1RmY8TI1zViYG4U6MeZoPnQcgxp vqVg5WNIk5SuXLR0vtjy+i6cpYriIrg2nbJRD20kGHh19xt6Qo7zB9xmQ7+gUvIBKDfF sJHPCFbzednuG2lUs1mTD18TsT6mpHk6LNmcwiFeDHiaOKOHHhheqSs5S1+3i4xKyEx2 UUIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=cmW5P1nQX/uFBLhk8qElAHHcDqLvI+TMC+swEGNSWS8=; b=BR9Z5H8x8wq0mEffAGKZBu1mADYGH6oT1jc5c4jtBDIQHC9YkUY2yInxAdpPk80m7u AfDgvZPLtNLxEb8ycWEuV+1S24mK3GmlALixAF6thH003EYDrkXOZ1Ru3tUw0fIDs1pT IIwtNb0d4zpKEPHw4TeHcbxAsvumGFZUqImXRj3kSuoeWDhhXHt2MHGZYrzUSTXV3vAs Xy8QY52BiDn02ZXT65NHd5k6lUS4ArDxMP8qtUPhD+gD0NazKT9zVy0FfzWXWNkXsLtk XX7QvWPsVAHdOIDMRAHiAEeLNmwHZxIXVGGB+XQLURErgVxLvFZOH5U4jBllq3PVu34S O/wg== X-Gm-Message-State: ALQs6tCMyN+nDW5OdjKMS2rJUDeFN4eUjZF4SV5cslm2AOOJEk6qouhk qr4FADJTRSQhpF/bxfzrdcoTtQ== X-Google-Smtp-Source: AIpwx48yIt8yWbcNimR0AmEZV5KUwohFfP8pQruwfTkqQXXdIu584g4WCEZDETxnj4DuLu/REurCTQ== X-Received: by 10.101.99.22 with SMTP id g22mr3139103pgv.410.1524091161083; Wed, 18 Apr 2018 15:39:21 -0700 (PDT) Received: from kenny.it.cumulusnetworks.com. (fw.cumulusnetworks.com. [216.129.126.126]) by smtp.googlemail.com with ESMTPSA id w9sm4787312pfl.45.2018.04.18.15.39.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Apr 2018 15:39:20 -0700 (PDT) From: David Ahern To: netdev@vger.kernel.org Cc: davem@davemloft.net, idosch@idosch.org, roopa@cumulusnetworks.com, eric.dumazet@gmail.com, weiwan@google.com, kafai@fb.com, yoshfuji@linux-ipv6.org, David Ahern Subject: [PATCH net-next 4/8] net/ipv6: Remove unnecessary checks on fib6_idev Date: Wed, 18 Apr 2018 15:39:02 -0700 Message-Id: <20180418223906.16650-5-dsahern@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180418223906.16650-1-dsahern@gmail.com> References: <20180418223906.16650-1-dsahern@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Prior to 4832c30d5458 ("net: ipv6: put host and anycast routes on device with address") host routes and anycast routes were installed with the device set to loopback (or VRF device once that feature was added). In the older code dst.dev was set to loopback (needed for packet tx) and rt6i_idev was used to denote the actual interface. Commit 4832c30d5458 changed the code to have dst.dev pointing to the real device with the switch to lo or vrf device done on dst clones. As a consequence of this change a couple of device checks during route lookups are no longer needed. Remove them. Signed-off-by: David Ahern --- net/ipv6/route.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index e44f82848143..8cf4f0623229 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -455,7 +455,6 @@ static inline struct fib6_info *rt6_device_match(struct net *net, int oif, int flags) { - struct fib6_info *local = NULL; struct fib6_info *sprt; if (!oif && ipv6_addr_any(saddr) && @@ -471,17 +470,6 @@ static inline struct fib6_info *rt6_device_match(struct net *net, if (oif) { if (dev->ifindex == oif) return sprt; - if (dev->flags & IFF_LOOPBACK) { - if (!sprt->fib6_idev || - sprt->fib6_idev->dev->ifindex != oif) { - if (flags & RT6_LOOKUP_F_IFACE) - continue; - if (local && - local->fib6_idev->dev->ifindex == oif) - continue; - } - local = sprt; - } } else { if (ipv6_chk_addr(net, saddr, dev, flags & RT6_LOOKUP_F_IFACE)) @@ -489,13 +477,8 @@ static inline struct fib6_info *rt6_device_match(struct net *net, } } - if (oif) { - if (local) - return local; - - if (flags & RT6_LOOKUP_F_IFACE) - return net->ipv6.fib6_null_entry; - } + if (oif && flags & RT6_LOOKUP_F_IFACE) + return net->ipv6.fib6_null_entry; return rt->fib6_nh.nh_flags & RTNH_F_DEAD ? net->ipv6.fib6_null_entry : rt; } @@ -586,9 +569,6 @@ static inline int rt6_check_dev(struct fib6_info *rt, int oif) if (!oif || dev->ifindex == oif) return 2; - if ((dev->flags & IFF_LOOPBACK) && - rt->fib6_idev && rt->fib6_idev->dev->ifindex == oif) - return 1; return 0; }