From patchwork Thu Jul 9 09:38:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kalesh A P X-Patchwork-Id: 73627 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id A4862A0526; Thu, 9 Jul 2020 11:23:41 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1CEF91E551; Thu, 9 Jul 2020 11:23:17 +0200 (CEST) Received: from relay.smtp.broadcom.com (relay.smtp.broadcom.com [192.19.232.149]) by dpdk.org (Postfix) with ESMTP id 69E981E535 for ; Thu, 9 Jul 2020 11:23:13 +0200 (CEST) Received: from dhcp-10-123-153-22.dhcp.broadcom.net (bgccx-dev-host-lnx2.bec.broadcom.net [10.123.153.22]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 8DF491BE21D; Thu, 9 Jul 2020 02:23:12 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 8DF491BE21D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1594286593; bh=0VGFglTPPCR8ArWBa3Cp6/eZJbSRwyOubZm1SrsqBYI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=P3zmaBhEXSy9DOfDEztA8HLrTJu+KL5mlKuJpQL0HNsqALs+wt1QL5gEAPJgnVioo O2g3LUVNbjn+OIWELj722TvONdcLfNzqSq4GOnQmtK5b6ElhOE3t1b+98IrYzcogZ4 TbrIryY7KJfC/alQax6fklwGTyLY8yIMRVx85R6A= From: Kalesh A P To: dev@dpdk.org Cc: ferruh.yigit@intel.com, ajit.khaparde@broadcom.com Date: Thu, 9 Jul 2020 15:08:31 +0530 Message-Id: <20200709093832.7616-5-kalesh-anakkur.purayil@broadcom.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20200709093832.7616-1-kalesh-anakkur.purayil@broadcom.com> References: <20200709093832.7616-1-kalesh-anakkur.purayil@broadcom.com> Subject: [dpdk-dev] [PATCH 4/5] net/bnxt: fix to set flow error when filter create fails X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Kalesh AP If set_em_filter/set_ntuple_filter cmds fails for some reason, driver is not filling the "rte_flow_error" string buffer. Same is the case when flow create fails due to an already existing mark id for the new flow id created. This leads to a crash in testpmd while trying to print the error message. Fixes: 5c1171c97216 ("net/bnxt: refactor filter/flow") Fixes: 9db66782bd06 ("net/bnxt: fix supporting zero mark ID with RSS action") Cc: stable@dpdk.org Signed-off-by: Kalesh AP Reviewed-by: Ajit Kumar Khaparde --- drivers/net/bnxt/bnxt_flow.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/drivers/net/bnxt/bnxt_flow.c b/drivers/net/bnxt/bnxt_flow.c index 19bc66a..499dcdf 100644 --- a/drivers/net/bnxt/bnxt_flow.c +++ b/drivers/net/bnxt/bnxt_flow.c @@ -1786,12 +1786,24 @@ bnxt_flow_create(struct rte_eth_dev *dev, filter->enables |= HWRM_CFA_EM_FLOW_ALLOC_INPUT_ENABLES_L2_FILTER_ID; ret = bnxt_hwrm_set_em_filter(bp, filter->dst_id, filter); + if (ret != 0) { + rte_flow_error_set(error, -ret, + RTE_FLOW_ERROR_TYPE_HANDLE, NULL, + "Failed to create EM filter"); + goto free_filter; + } } if (filter->filter_type == HWRM_CFA_NTUPLE_FILTER) { filter->enables |= HWRM_CFA_NTUPLE_FILTER_ALLOC_INPUT_ENABLES_L2_FILTER_ID; ret = bnxt_hwrm_set_ntuple_filter(bp, filter->dst_id, filter); + if (ret != 0) { + rte_flow_error_set(error, -ret, + RTE_FLOW_ERROR_TYPE_HANDLE, NULL, + "Failed to create ntuple filter"); + goto free_filter; + } } vnic = find_matching_vnic(bp, filter); @@ -1817,10 +1829,10 @@ bnxt_flow_create(struct rte_eth_dev *dev, */ flow_id = filter->flow_id & BNXT_FLOW_ID_MASK; if (bp->mark_table[flow_id].valid) { - PMD_DRV_LOG(ERR, - "Entry for Mark id 0x%x occupied" - " flow id 0x%x\n", - filter->mark, filter->flow_id); + rte_flow_error_set(error, EEXIST, + RTE_FLOW_ERROR_TYPE_HANDLE, + NULL, + "Flow with mark id exists"); goto free_filter; } bp->mark_table[flow_id].valid = true;