net/hns3: fix key length when configuring RSS
authorLijun Ou <oulijun@huawei.com>
Fri, 22 May 2020 09:21:18 +0000 (17:21 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 28 May 2020 15:57:07 +0000 (17:57 +0200)
When users set the length of RSS hash key greater than the supported
length by hardware, the driver should intercept and can not configure
the wrong key into the hardware.

Fixes: c37ca66f2b27 ("net/hns3: support RSS")
Cc: stable@dpdk.org
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
drivers/net/hns3/hns3_flow.c

index aef301a..c7851b2 100644 (file)
@@ -1475,6 +1475,14 @@ hns3_config_rss_filter(struct rte_eth_dev *dev,
                return -EINVAL;
        }
 
+       if (rss_flow_conf.key_len &&
+           rss_flow_conf.key_len > RTE_DIM(rss_info->key)) {
+               hns3_err(hw,
+                       "input hash key(%u) greater than supported len(%zu)",
+                       rss_flow_conf.key_len, RTE_DIM(rss_info->key));
+               return -EINVAL;
+       }
+
        /* Filter the unsupported flow types */
        flow_types = rss_flow_conf.types & HNS3_ETH_RSS_SUPPORT;
        if (flow_types != rss_flow_conf.types)