From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id AB58AA04B5 for ; Mon, 11 Jan 2021 06:22:33 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 15F28140C9E; Mon, 11 Jan 2021 06:22:33 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id A7231140C9E for ; Mon, 11 Jan 2021 06:22:31 +0100 (CET) IronPort-SDR: klMyOm/bb0Vq0jPPAQnR7hUOv8v4w+HBmwE9TCQ9EVFIzMsYiwn5J7twdb/1nT6NuT78Kbt2Kh l5Y6C1/fzm9g== X-IronPort-AV: E=McAfee;i="6000,8403,9860"; a="175228786" X-IronPort-AV: E=Sophos;i="5.79,337,1602572400"; d="scan'208";a="175228786" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jan 2021 21:22:29 -0800 IronPort-SDR: fIojRHDr1QvtwsMY6R+z1BaafQ2Nms/TDFkO2X6cJb7xTZNMy3OZAQaboHeVDndQ105NEHx7HT lNqIWnWbrRrQ== X-IronPort-AV: E=Sophos;i="5.79,337,1602572400"; d="scan'208";a="399683536" Received: from shwdenpg235.ccr.corp.intel.com ([10.240.182.60]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jan 2021 21:22:27 -0800 From: "Zhang,Alvin" To: qabuild@intel.com Cc: Alvin Zhang , stable@dpdk.org, Qi Zhang Date: Mon, 11 Jan 2021 13:22:20 +0800 Message-Id: <20210111052221.7780-2-alvinx.zhang@intel.com> X-Mailer: git-send-email 2.21.0.windows.1 In-Reply-To: <20210111052221.7780-1-alvinx.zhang@intel.com> References: <20210111052221.7780-1-alvinx.zhang@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] [DPDK 2/3] net/i40e: fix return value 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" From: Alvin Zhang The api should return the system error status, but it returned the hardware error status, this is confused for the caller. This patch adds check on hardware execution status and returns -EIO in case of hardware execution failure. Fixes: 1d4b2b4966bb ("net/i40e: fix VF overwrite PF RSS LUT for X722") Fixes: d0a349409bd7 ("i40e: support AQ based RSS config") Cc: stable@dpdk.org Signed-off-by: Alvin Zhang Acked-by: Qi Zhang --- drivers/net/i40e/i40e_ethdev.c | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 7f9bba4..5984e52 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -4443,7 +4443,6 @@ static int i40e_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, { struct i40e_pf *pf; struct i40e_hw *hw; - int ret; if (!vsi || !lut) return -EINVAL; @@ -4452,12 +4451,16 @@ static int i40e_dev_xstats_get_names(__rte_unused struct rte_eth_dev *dev, hw = I40E_VSI_TO_HW(vsi); if (pf->flags & I40E_FLAG_RSS_AQ_CAPABLE) { - ret = i40e_aq_set_rss_lut(hw, vsi->vsi_id, - vsi->type != I40E_VSI_SRIOV, - lut, lut_size); - if (ret) { - PMD_DRV_LOG(ERR, "Failed to set RSS lookup table"); - return ret; + enum i40e_status_code status; + + status = i40e_aq_set_rss_lut(hw, vsi->vsi_id, + vsi->type != I40E_VSI_SRIOV, + lut, lut_size); + if (status) { + PMD_DRV_LOG(ERR, + "Failed to update RSS lookup table, error status: %d", + status); + return -EIO; } } else { uint32_t *lut_dw = (uint32_t *)lut; @@ -7612,7 +7615,6 @@ struct i40e_vsi * uint16_t key_idx = (vsi->type == I40E_VSI_SRIOV) ? I40E_VFQF_HKEY_MAX_INDEX : I40E_PFQF_HKEY_MAX_INDEX; - int ret = 0; if (!key || key_len == 0) { PMD_DRV_LOG(DEBUG, "No key to be configured"); @@ -7625,11 +7627,16 @@ struct i40e_vsi * if (pf->flags & I40E_FLAG_RSS_AQ_CAPABLE) { struct i40e_aqc_get_set_rss_key_data *key_dw = - (struct i40e_aqc_get_set_rss_key_data *)key; + (struct i40e_aqc_get_set_rss_key_data *)key; + enum i40e_status_code status = + i40e_aq_set_rss_key(hw, vsi->vsi_id, key_dw); - ret = i40e_aq_set_rss_key(hw, vsi->vsi_id, key_dw); - if (ret) - PMD_INIT_LOG(ERR, "Failed to configure RSS key via AQ"); + if (status) { + PMD_DRV_LOG(ERR, + "Failed to configure RSS key via AQ, error status: %d", + status); + return -EIO; + } } else { uint32_t *hash_key = (uint32_t *)key; uint16_t i; @@ -7649,7 +7656,7 @@ struct i40e_vsi * I40E_WRITE_FLUSH(hw); } - return ret; + return 0; } static int -- 1.8.3.1