From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD017C3A5A8 for ; Wed, 4 Sep 2019 15:59:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A1FE52087E for ; Wed, 4 Sep 2019 15:59:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567612771; bh=BvbLYBycoaBZwSCz1J1OhvVyGPOAwRk9sZnNSfbTWlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=tIfKZ9Q56fWMbzhzE7R6n2/b0nmBJ5DwkA9G86oBv/LC0dDk0Vc1e0Kc7/mL1yM7y 5NGa0yR75z0QnxXM84WNyM6FlXETxlXVxc+utBVpLLUPz0bLJAXsrVwCRc5y+Vrm/7 SY5t6haMd+1iLpETZ8MrtzLyZB55VZcaAn7i7Ydg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732408AbfIDP7a (ORCPT ); Wed, 4 Sep 2019 11:59:30 -0400 Received: from mail.kernel.org ([198.145.29.99]:33966 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731634AbfIDP71 (ORCPT ); Wed, 4 Sep 2019 11:59:27 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 5057E20820; Wed, 4 Sep 2019 15:59:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567612766; bh=BvbLYBycoaBZwSCz1J1OhvVyGPOAwRk9sZnNSfbTWlY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tEs54ryfdq4ENtpV/qL0glDgzYWMfGYr7Y2Kg/mpkgaDuErlujbsYmllWegBWa4xq ZJcEKhG0SgHdX4frve18q34H4HJB/GgUU8lLx0Oxmvg5kT77VC+DMRoUvvrV4MurlP CoUguOjk1vuIbccp7iZR+MM6a4m1Ne+BLyA43nZE= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: John Hurley , Simon Horman , Jakub Kicinski , "David S . Miller" , Sasha Levin , oss-drivers@netronome.com, netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.2 68/94] nfp: flower: handle neighbour events on internal ports Date: Wed, 4 Sep 2019 11:57:13 -0400 Message-Id: <20190904155739.2816-68-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190904155739.2816-1-sashal@kernel.org> References: <20190904155739.2816-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: John Hurley [ Upstream commit e8024cb483abb2b0290b3ef5e34c736e9de2492f ] Recent code changes to NFP allowed the offload of neighbour entries to FW when the next hop device was an internal port. This allows for offload of tunnel encap when the end-point IP address is applied to such a port. Unfortunately, the neighbour event handler still rejects events that are not associated with a repr dev and so the firmware neighbour table may get out of sync for internal ports. Fix this by allowing internal port neighbour events to be correctly processed. Fixes: 45756dfedab5 ("nfp: flower: allow tunnels to output to internal port") Signed-off-by: John Hurley Reviewed-by: Simon Horman Reviewed-by: Jakub Kicinski Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c index 8c67505865a46..43faad1893f7f 100644 --- a/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c +++ b/drivers/net/ethernet/netronome/nfp/flower/tunnel_conf.c @@ -329,13 +329,13 @@ nfp_tun_neigh_event_handler(struct notifier_block *nb, unsigned long event, flow.daddr = *(__be32 *)n->primary_key; - /* Only concerned with route changes for representors. */ - if (!nfp_netdev_is_nfp_repr(n->dev)) - return NOTIFY_DONE; - app_priv = container_of(nb, struct nfp_flower_priv, tun.neigh_nb); app = app_priv->app; + if (!nfp_netdev_is_nfp_repr(n->dev) && + !nfp_flower_internal_port_can_offload(app, n->dev)) + return NOTIFY_DONE; + /* Only concerned with changes to routes already added to NFP. */ if (!nfp_tun_has_route(app, flow.daddr)) return NOTIFY_DONE; -- 2.20.1