From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2C87CA0524 for ; Fri, 8 Jan 2021 05:31:40 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 38529140E32; Fri, 8 Jan 2021 05:31:36 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 4A2D4140E15; Fri, 8 Jan 2021 05:31:33 +0100 (CET) IronPort-SDR: FLlXa9uOxdWAeXLc8Z98k3UyuvJbx2Tl2hWNVOkZubpT9I6kgE+5AXC/v/BFWOK9y+XznN451U FMqH2MXtoCpw== X-IronPort-AV: E=McAfee;i="6000,8403,9857"; a="262309398" X-IronPort-AV: E=Sophos;i="5.79,330,1602572400"; d="scan'208";a="262309398" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jan 2021 20:31:33 -0800 IronPort-SDR: VxPiAlayFQ6IQAr4MOWzX4AoNca0uqpE9MT+08Ri4Za1lBtmwuCveiCZ777vKRv0ls/x3+ZDow JNocTHa19RcQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,330,1602572400"; d="scan'208";a="398858760" Received: from dpdk51.sh.intel.com ([10.67.111.142]) by fmsmga002.fm.intel.com with ESMTP; 07 Jan 2021 20:31:31 -0800 From: Qi Zhang To: qiming.yang@intel.com Cc: haiyue.wang@intel.com, jia.guo@intel.com, dev@dpdk.org, ferruh.yigit@intel.com, Qi Zhang , stable@dpdk.org, Victor Raj Date: Fri, 8 Jan 2021 12:35:07 +0800 Message-Id: <20210108043508.301227-9-qi.z.zhang@intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210108043508.301227-1-qi.z.zhang@intel.com> References: <20210108043508.301227-1-qi.z.zhang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [PATCH 8/9] net/ice/base: updated the add scheduler node counter X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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" The number of nodes added counter was updated incorrectly. This issue was exposed when the driver tried to add more than 128 queues per TC. Fix added to update the counter correctly. Fixes: 93e84b1bfc92 ("net/ice/base: add basic Tx scheduler") Cc: stable@dpdk.org Signed-off-by: Victor Raj Signed-off-by: Qi Zhang --- drivers/net/ice/base/ice_sched.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ice/base/ice_sched.c b/drivers/net/ice/base/ice_sched.c index 53d76d17ee..7d4721e60c 100644 --- a/drivers/net/ice/base/ice_sched.c +++ b/drivers/net/ice/base/ice_sched.c @@ -1040,7 +1040,15 @@ ice_sched_add_nodes_to_layer(struct ice_port_info *pi, layer, new_num_nodes, first_teid_ptr, &num_added); - *num_nodes_added += num_added; + if (status == ICE_SUCCESS) + *num_nodes_added += num_added; + /* added more nodes than requested ? */ + if (*num_nodes_added > num_nodes) { + ice_debug(pi->hw, ICE_DBG_SCHED, "added extra nodes %d %d\n", num_nodes, + *num_nodes_added); + status = ICE_ERR_CFG; + break; + } /* break if all the nodes are added successfully */ if (status == ICE_SUCCESS && (*num_nodes_added == num_nodes)) break; @@ -1063,7 +1071,7 @@ ice_sched_add_nodes_to_layer(struct ice_port_info *pi, if (num_added) first_teid_ptr = &temp; - new_num_nodes = num_nodes - num_added; + new_num_nodes = num_nodes - *num_nodes_added; } } return status; -- 2.26.2