[dpdk-dev] i40e: fix issue of reconfigure hash enable flags
Commit Message
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
>
> - 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
> -----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
@@ -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 =