From patchwork Thu Apr 8 23:06:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "John Daley (johndale)" X-Patchwork-Id: 90920 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D9F20A0C42; Fri, 9 Apr 2021 01:06:38 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5B7234068E; Fri, 9 Apr 2021 01:06:38 +0200 (CEST) Received: from alln-iport-1.cisco.com (alln-iport-1.cisco.com [173.37.142.88]) by mails.dpdk.org (Postfix) with ESMTP id 9BEB44014D; Fri, 9 Apr 2021 01:06:36 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1520; q=dns/txt; s=iport; t=1617923196; x=1619132796; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=wl61bDQb+3oK7SRJhTs7AhBUs48AgVhvfHybzSg1ob8=; b=kcdmRpe7ihh9Zgm1eg72DD8NXVlXNia7q1HYr/dcJqLrzMqpXnZpVmIK chRosFc2rJjTwLGaW3cEpdYFzf+/YnRMsayDZtIHWaAZg3FvGVwozh/ZK QfDtFGo8eqbv+T43FPXB6+OcMBzCHRepOPvfFrRNufDNwj5vVeNCceTSO s=; X-IronPort-AV: E=Sophos;i="5.82,207,1613433600"; d="scan'208";a="673217965" Received: from alln-core-9.cisco.com ([173.36.13.129]) by alln-iport-1.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 08 Apr 2021 23:06:35 +0000 Received: from cisco.com (savbu-usnic-a.cisco.com [10.193.184.48]) by alln-core-9.cisco.com (8.15.2/8.15.2) with ESMTP id 138N6ZSH019282; Thu, 8 Apr 2021 23:06:35 GMT Received: by cisco.com (Postfix, from userid 392789) id 240F420F2005; Thu, 8 Apr 2021 16:06:35 -0700 (PDT) From: John Daley To: ferruh.yigit@intel.com, arybchenko@solarflare.com Cc: dev@dpdk.org, John Daley , stable@dpdk.org, Hyong Youb Kim Date: Thu, 8 Apr 2021 16:06:31 -0700 Message-Id: <20210408230631.2648-1-johndale@cisco.com> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-Outbound-SMTP-Client: 10.193.184.48, savbu-usnic-a.cisco.com X-Outbound-Node: alln-core-9.cisco.com Subject: [dpdk-dev] [PATCH] net/enic: fix flow initialization error handling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" Fix a rare case in rte_flow initialization where the action hash table is not freed if allocating a NIC match table fails. Fixes: ea7768b5bba8 ("net/enic: add flow implementation based on Flow Manager API") Cc: stable@dpdk.org Signed-off-by: John Daley Reviewed-by: Hyong Youb Kim --- drivers/net/enic/enic_fm_flow.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/enic/enic_fm_flow.c b/drivers/net/enic/enic_fm_flow.c index 21d9b1cef7..cd364ee16b 100644 --- a/drivers/net/enic/enic_fm_flow.c +++ b/drivers/net/enic/enic_fm_flow.c @@ -2890,7 +2890,7 @@ enic_fm_init(struct enic *enic) rc = enic_fm_init_actions(fm); if (rc) { ENICPMD_LOG(ERR, "cannot create action hash, error:%d", rc); - goto error_tables; + goto error_counters; } /* * One default exact match table for each direction. We hold onto @@ -2899,7 +2899,7 @@ enic_fm_init(struct enic *enic) rc = enic_fet_alloc(fm, 1, NULL, 128, &fm->default_ig_fet); if (rc) { ENICPMD_LOG(ERR, "cannot alloc default IG exact match table"); - goto error_counters; + goto error_actions; } fm->default_ig_fet->ref = 1; rc = enic_fet_alloc(fm, 0, NULL, 128, &fm->default_eg_fet); @@ -2914,6 +2914,8 @@ enic_fm_init(struct enic *enic) error_ig_fet: enic_fet_free(fm, fm->default_ig_fet); +error_actions: + rte_hash_free(fm->action_hash); error_counters: enic_fm_free_all_counters(fm); error_tables: