net/ice: fix VSI array out of bounds access
[dpdk.git] / drivers / net / ice / ice_ethdev.c
index 36b8bd1..5fd5f99 100644 (file)
@@ -2928,23 +2928,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_IPV4) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_IPV4 |
-                               ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_FLOW_HASH_IPV4;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV4 rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_IPV4 |
-                               ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV4 rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV4 |
                                ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_FLOW_HASH_IPV4;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV4 rss flow fail %d",
@@ -2952,23 +2938,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_IPV6) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_IPV6 |
-                               ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_FLOW_HASH_IPV6;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV6 rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_IPV6 |
-                               ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV6 rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_IPV6 |
                                ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_FLOW_HASH_IPV6;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV6 rss flow fail %d",
@@ -2976,23 +2948,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_NONFRAG_IPV4_UDP) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_UDP |
-                               ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_HASH_UDP_IPV4;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV4_UDP rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_UDP |
-                               ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV4_UDP rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_UDP |
                                ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_HASH_UDP_IPV4;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV4_UDP rss flow fail %d",
@@ -3000,23 +2958,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_NONFRAG_IPV6_UDP) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_UDP |
-                               ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_HASH_UDP_IPV6;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV6_UDP rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_UDP |
-                               ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV6_UDP rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_UDP |
                                ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_HASH_UDP_IPV6;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV6_UDP rss flow fail %d",
@@ -3024,23 +2968,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_NONFRAG_IPV4_TCP) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_TCP |
-                               ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_HASH_TCP_IPV4;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV4_TCP rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_TCP |
-                               ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV4_TCP rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_TCP |
                                ICE_FLOW_SEG_HDR_IPV4 | ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_HASH_TCP_IPV4;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV4_TCP rss flow fail %d",
@@ -3048,23 +2978,9 @@ ice_rss_hash_set(struct ice_pf *pf, uint64_t rss_hf)
        }
 
        if (rss_hf & ETH_RSS_NONFRAG_IPV6_TCP) {
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_IP | ICE_FLOW_SEG_HDR_TCP |
-                               ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               cfg.hash_flds = ICE_HASH_TCP_IPV6;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_IPV6_TCP rss flow fail %d",
-                                   __func__, ret);
-
-               cfg.addl_hdrs = ICE_FLOW_SEG_HDR_GTPU_EH | ICE_FLOW_SEG_HDR_TCP |
-                               ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
-               ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
-               if (ret)
-                       PMD_DRV_LOG(ERR, "%s GTPU_EH_IPV6_TCP rss flow fail %d",
-                                   __func__, ret);
-
                cfg.addl_hdrs = ICE_FLOW_SEG_HDR_PPPOE | ICE_FLOW_SEG_HDR_TCP |
                                ICE_FLOW_SEG_HDR_IPV6 | ICE_FLOW_SEG_HDR_IPV_OTHER;
+               cfg.hash_flds = ICE_HASH_TCP_IPV6;
                ret = ice_add_rss_cfg_wrap(pf, vsi->idx, &cfg);
                if (ret)
                        PMD_DRV_LOG(ERR, "%s PPPoE_IPV6_TCP rss flow fail %d",
@@ -3124,7 +3040,7 @@ static int ice_init_rss(struct ice_pf *pf)
        /* configure RSS key */
        if (!rss_conf->rss_key) {
                /* Calculate the default hash key */
-               for (i = 0; i <= vsi->rss_key_size; i++)
+               for (i = 0; i < vsi->rss_key_size; i++)
                        vsi->rss_key[i] = (uint8_t)rte_rand();
        } else {
                rte_memcpy(vsi->rss_key, rss_conf->rss_key,
@@ -5372,11 +5288,11 @@ RTE_PMD_REGISTER_PARAM_STRING(net_ice,
                              ICE_SAFE_MODE_SUPPORT_ARG "=<0|1>"
                              ICE_PIPELINE_MODE_SUPPORT_ARG "=<0|1>");
 
-RTE_LOG_REGISTER(ice_logtype_init, pmd.net.ice.init, NOTICE);
-RTE_LOG_REGISTER(ice_logtype_driver, pmd.net.ice.driver, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(ice_logtype_init, init, NOTICE);
+RTE_LOG_REGISTER_SUFFIX(ice_logtype_driver, driver, NOTICE);
 #ifdef RTE_ETHDEV_DEBUG_RX
-RTE_LOG_REGISTER(ice_logtype_rx, pmd.net.ice.rx, DEBUG);
+RTE_LOG_REGISTER_SUFFIX(ice_logtype_rx, rx, DEBUG);
 #endif
 #ifdef RTE_ETHDEV_DEBUG_TX
-RTE_LOG_REGISTER(ice_logtype_tx, pmd.net.ice.tx, DEBUG);
+RTE_LOG_REGISTER_SUFFIX(ice_logtype_tx, tx, DEBUG);
 #endif