[dpdk-dev] i40e: fix issue of reconfigure hash enable flags

Message ID 1448256970-2722-1-git-send-email-helin.zhang@intel.com (mailing list archive)
State Superseded, archived
Headers

Commit Message

Zhang, Helin Nov. 23, 2015, 5:36 a.m. UTC
  It fixes the issue of not re-configuring hash enable flags (HENA)
if there is no key.

Fixes: d0a349409bd7 ("i40e: support AQ based RSS config")

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
---
 drivers/net/i40e/i40e_ethdev.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
  

Comments

Jingjing Wu Nov. 23, 2015, 5:53 a.m. UTC | #1
> 
> -	if (!key || key_len != ((I40E_PFQF_HKEY_MAX_INDEX + 1) *
> -		sizeof(uint32_t)))
> +	if (!key || key_len == 0) {
> +		PMD_DRV_LOG(DEBUG, "No key to be configured");
> +		return 0;
> +	} else if (key && (key_len != (I40E_PFQF_HKEY_MAX_INDEX + 1) *
> +		sizeof(uint32_t))) {
No need to check key in else if, it shouldn't be NULL here.
> +		PMD_DRV_LOG(ERR, "Invalid key length %u", key_len);
>  		return -EINVAL;
> +	}

Thanks
Jingjing
  
Zhang, Helin Nov. 23, 2015, 5:58 a.m. UTC | #2
> -----Original Message-----
> From: Wu, Jingjing
> Sent: Monday, November 23, 2015 1:54 PM
> To: Zhang, Helin; dev@dpdk.org
> Cc: Pei, Yulong
> Subject: RE: [PATCH] i40e: fix issue of reconfigure hash enable flags
> 
> >
> > -	if (!key || key_len != ((I40E_PFQF_HKEY_MAX_INDEX + 1) *
> > -		sizeof(uint32_t)))
> > +	if (!key || key_len == 0) {
> > +		PMD_DRV_LOG(DEBUG, "No key to be configured");
> > +		return 0;
> > +	} else if (key && (key_len != (I40E_PFQF_HKEY_MAX_INDEX + 1) *
> > +		sizeof(uint32_t))) {
> No need to check key in else if, it shouldn't be NULL here.
Yes, it should be removed. Thanks!

Regards,
Helin

> > +		PMD_DRV_LOG(ERR, "Invalid key length %u", key_len);
> >  		return -EINVAL;
> > +	}
> 
> Thanks
> Jingjing
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 2c51a0b..e9e07e2 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -5663,9 +5663,14 @@  i40e_set_rss_key(struct i40e_vsi *vsi, uint8_t *key, uint8_t key_len)
 	struct i40e_hw *hw = I40E_VSI_TO_HW(vsi);
 	int ret = 0;
 
-	if (!key || key_len != ((I40E_PFQF_HKEY_MAX_INDEX + 1) *
-		sizeof(uint32_t)))
+	if (!key || key_len == 0) {
+		PMD_DRV_LOG(DEBUG, "No key to be configured");
+		return 0;
+	} else if (key && (key_len != (I40E_PFQF_HKEY_MAX_INDEX + 1) *
+		sizeof(uint32_t))) {
+		PMD_DRV_LOG(ERR, "Invalid key length %u", key_len);
 		return -EINVAL;
+	}
 
 	if (pf->flags & I40E_FLAG_RSS_AQ_CAPABLE) {
 		struct i40e_aqc_get_set_rss_key_data *key_dw =