From patchwork Mon Jul 20 06:59:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Junfeng Guo X-Patchwork-Id: 74475 X-Patchwork-Delegate: qi.z.zhang@intel.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 9A2A0A0540; Mon, 20 Jul 2020 09:01:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 04DC91BF0B; Mon, 20 Jul 2020 09:01:26 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 7753D1BEE3 for ; Mon, 20 Jul 2020 09:01:23 +0200 (CEST) IronPort-SDR: N0bK8yYLJGbz5F42nG94KizjKzrjB23KFBJaTUZ67FCqWLLNTotkdRe37NJAwHPOn5Alvnvgvl +cxHR8vgrKtg== X-IronPort-AV: E=McAfee;i="6000,8403,9687"; a="149848868" X-IronPort-AV: E=Sophos;i="5.75,374,1589266800"; d="scan'208";a="149848868" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Jul 2020 00:01:22 -0700 IronPort-SDR: uV/YYS98JfiW38UeqoksqaDmtxb6kK6fsTnfOlfjHMGc82lrUHVh6bjaj40aN+8Hte4e75saBi pM9oV5Ok/hKw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,374,1589266800"; d="scan'208";a="309735293" Received: from dpdk-junfengguo-v3.sh.intel.com ([10.67.119.146]) by fmsmga004.fm.intel.com with ESMTP; 20 Jul 2020 00:01:20 -0700 From: Junfeng Guo To: qi.z.zhang@intel.com, beilei.xing@intel.com Cc: dev@dpdk.org, jia.guo@intel.com, junfeng.guo@intel.com, simei.su@intel.com Date: Mon, 20 Jul 2020 14:59:38 +0800 Message-Id: <20200720065938.4108436-1-junfeng.guo@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH] net/ice/base: free memory for GTP-U before return status 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" Add memory space free logic for adding and removing GTP-U before return success status, to aviod memory leak issue. Fixes: bed9bb3139ef ("net/ice/base: fix GTP-U inner RSS IPv4 IPv6 co-exist") Signed-off-by: Junfeng Guo --- drivers/net/ice/base/ice_flow.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/net/ice/base/ice_flow.c b/drivers/net/ice/base/ice_flow.c index 094f5370a..6035bdfcf 100644 --- a/drivers/net/ice/base/ice_flow.c +++ b/drivers/net/ice/base/ice_flow.c @@ -3586,8 +3586,10 @@ ice_add_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle, u64 hashed_flds, /* don't do RSS for GTPU outer */ if (segs_cnt == ICE_RSS_OUTER_HEADERS && - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) - return ICE_SUCCESS; + segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) { + status = ICE_SUCCESS; + goto exit; + } /* Search for a flow profile that has matching headers, hash fields * and has the input VSI associated to it. If found, no further @@ -3746,8 +3748,10 @@ ice_rem_rss_cfg_sync(struct ice_hw *hw, u16 vsi_handle, u64 hashed_flds, goto out; if (segs_cnt == ICE_RSS_OUTER_HEADERS && - segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) - return ICE_SUCCESS; + segs[segs_cnt - 1].hdrs & ICE_FLOW_SEG_HDR_GTPU) { + status = ICE_SUCCESS; + goto out; + } prof = ice_flow_find_prof_conds(hw, blk, ICE_FLOW_RX, segs, segs_cnt, vsi_handle,