From mboxrd@z Thu Jan 1 00:00:00 1970 From: dsahern@kernel.org Subject: [PATCH net-next 3/3] netfilter: nft_fib: Convert nft_fib4_eval to new dev helper Date: Thu, 20 Sep 2018 13:50:49 -0700 Message-ID: <20180920205049.15143-4-dsahern@kernel.org> References: <20180920205049.15143-1-dsahern@kernel.org> Cc: pablo@netfilter.org, fw@strlen.de, David Ahern To: netdev@vger.kernel.org, netfilter-devel@vger.kernel.org Return-path: Received: from mail.kernel.org ([198.145.29.99]:46536 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727659AbeIUCgW (ORCPT ); Thu, 20 Sep 2018 22:36:22 -0400 In-Reply-To: <20180920205049.15143-1-dsahern@kernel.org> Sender: netdev-owner@vger.kernel.org List-ID: From: David Ahern Convert nft_fib4_eval to the new device checking helper and remove the duplicate code. Signed-off-by: David Ahern --- net/ipv4/netfilter/nft_fib_ipv4.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/net/ipv4/netfilter/nft_fib_ipv4.c b/net/ipv4/netfilter/nft_fib_ipv4.c index e50976e3c213..94eb25bc8d7e 100644 --- a/net/ipv4/netfilter/nft_fib_ipv4.c +++ b/net/ipv4/netfilter/nft_fib_ipv4.c @@ -76,10 +76,7 @@ void nft_fib4_eval(const struct nft_expr *expr, struct nft_regs *regs, .flowi4_iif = LOOPBACK_IFINDEX, }; const struct net_device *oif; - struct net_device *found; -#ifdef CONFIG_IP_ROUTE_MULTIPATH - int i; -#endif + const struct net_device *found; /* * Do not set flowi4_oif, it restricts results (for example, asking @@ -146,25 +143,13 @@ void nft_fib4_eval(const struct nft_expr *expr, struct nft_regs *regs, if (!oif) { found = FIB_RES_DEV(res); - goto ok; - } - -#ifdef CONFIG_IP_ROUTE_MULTIPATH - for (i = 0; i < res.fi->fib_nhs; i++) { - struct fib_nh *nh = &res.fi->fib_nh[i]; + } else { + if (!fib_info_nh_uses_dev(res.fi, oif)) + return; - if (nh->nh_dev == oif) { - found = nh->nh_dev; - goto ok; - } + found = oif; } - return; -#else - found = FIB_RES_DEV(res); - if (found != oif) - return; -#endif -ok: + switch (priv->result) { case NFT_FIB_RESULT_OIF: *dest = found->ifindex; -- 2.11.0