From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 09225A04DB for ; Tue, 1 Dec 2020 04:25:35 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 657D5C988; Tue, 1 Dec 2020 04:25:33 +0100 (CET) Received: from relay.smtp-ext.broadcom.com (relay.smtp-ext.broadcom.com [192.19.221.30]) by dpdk.org (Postfix) with ESMTP id 143E8C980 for ; Tue, 1 Dec 2020 04:25:31 +0100 (CET) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp-ext.broadcom.com (Postfix) with ESMTP id DDA277DA3 for ; Mon, 30 Nov 2020 19:25:28 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 relay.smtp-ext.broadcom.com DDA277DA3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1606793129; bh=ztvQxKwXe0+2+MoZrfhoA23J7QQarBoG0LeTX2+6tI0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=B5WPZGeuS+3FwXbDaWRAsJb1qOgwgnCcrCYd7Wz57KH8bNtaitio/K6VTjDBLyXu5 DJHbBbJRfM0Aia7EF33/HaAZsdfqIoFF99dZk70mbgEzoWpf1cfNSLzNlWff+3Sgl4 wmZtNFRFfu2FMwkYQERzfRqq/Pp3mL40sqLt+idU= From: Kalesh A P To: stable@dpdk.org Date: Tue, 1 Dec 2020 09:09:27 +0530 Message-Id: <20201201033930.17869-3-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20201201033930.17869-1-kalesh-anakkur.purayil@broadcom.com> References: <20201201033930.17869-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-stable] [PATCH 18.11 2/5] net/bnxt: fix UDP tunnel port removal X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" From: Kalesh AP [ upstream commit c4ae7adafa23fb1121b96518a9b9b815288e680c ] The HWRM supports only one global destination port for a tunnel type. When port is stopped, driver deletes the UDP tunnel port configured in the HW, but it does not update the counter which causes the tunnel port addition to fail after port is started again. Fixed to update the counter when tunnel port is deleted. Fixes: 10d074b2022d ("net/bnxt: support tunneling") Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_ethdev.c | 8 -------- drivers/net/bnxt/bnxt_hwrm.c | 15 +++++++++++++-- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 82c54c3..366d36b 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -1308,14 +1308,6 @@ bnxt_udp_tunnel_port_del_op(struct rte_eth_dev *eth_dev, } rc = bnxt_hwrm_tunnel_dst_port_free(bp, port, tunnel_type); - if (!rc) { - if (tunnel_type == - HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_VXLAN) - bp->vxlan_port = 0; - if (tunnel_type == - HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_GENEVE) - bp->geneve_port = 0; - } return rc; } diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 41372a1..7ad7767 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -2113,11 +2113,10 @@ void bnxt_free_tunnel_ports(struct bnxt *bp) if (bp->vxlan_port_cnt) bnxt_hwrm_tunnel_dst_port_free(bp, bp->vxlan_fw_dst_port_id, HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_VXLAN); - bp->vxlan_port = 0; + if (bp->geneve_port_cnt) bnxt_hwrm_tunnel_dst_port_free(bp, bp->geneve_fw_dst_port_id, HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_GENEVE); - bp->geneve_port = 0; } void bnxt_free_all_hwrm_resources(struct bnxt *bp) @@ -2910,6 +2909,18 @@ int bnxt_hwrm_tunnel_dst_port_free(struct bnxt *bp, uint16_t port, HWRM_CHECK_RESULT(); HWRM_UNLOCK(); + if (tunnel_type == + HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_VXLAN) { + bp->vxlan_port = 0; + bp->vxlan_port_cnt = 0; + } + + if (tunnel_type == + HWRM_TUNNEL_DST_PORT_FREE_INPUT_TUNNEL_TYPE_GENEVE) { + bp->geneve_port = 0; + bp->geneve_port_cnt = 0; + } + return rc; } -- 2.10.1