net/ice: check Rx queue number on RSS init
authorDapeng Yu <dapengx.yu@intel.com>
Wed, 23 Dec 2020 05:30:18 +0000 (13:30 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 8 Jan 2021 15:03:06 +0000 (16:03 +0100)
When RSS is initialized, rx queues number is used as denominator to set
default value into the RSS lookup table. If it is zero, there will be
error of being divided by 0. So add value check to avoid the error.

Fixes: 50370662b727 ("net/ice: support device and queue ops")
Cc: stable@dpdk.org
Signed-off-by: Dapeng Yu <dapengx.yu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_ethdev.c

index 9a5d6a5..bbb8c14 100644 (file)
@@ -3182,6 +3182,12 @@ static int ice_init_rss(struct ice_pf *pf)
        vsi->rss_key_size = ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE;
        vsi->rss_lut_size = pf->hash_lut_size;
 
+       if (nb_q == 0) {
+               PMD_DRV_LOG(WARNING,
+                       "RSS is not supported as rx queues number is zero\n");
+               return 0;
+       }
+
        if (is_safe_mode) {
                PMD_DRV_LOG(WARNING, "RSS is not supported in safe mode\n");
                return 0;