net/mlx5: fix Tx stats error counter logic
[dpdk.git] / drivers / net / i40e / i40e_ethdev.c
index d76ef78..3b3f13c 100644 (file)
@@ -1596,7 +1596,8 @@ i40e_vsi_queues_unbind_intr(struct i40e_vsi *vsi)
 
 static void
 __vsi_queues_bind_intr(struct i40e_vsi *vsi, uint16_t msix_vect,
-                      int base_queue, int nb_queue)
+                      int base_queue, int nb_queue,
+                      uint16_t itr_idx)
 {
        int i;
        uint32_t val;
@@ -1605,7 +1606,7 @@ __vsi_queues_bind_intr(struct i40e_vsi *vsi, uint16_t msix_vect,
        /* Bind all RX queues to allocated MSIX interrupt */
        for (i = 0; i < nb_queue; i++) {
                val = (msix_vect << I40E_QINT_RQCTL_MSIX_INDX_SHIFT) |
-                       I40E_QINT_RQCTL_ITR_INDX_MASK |
+                       itr_idx << I40E_QINT_RQCTL_ITR_INDX_SHIFT |
                        ((base_queue + i + 1) <<
                         I40E_QINT_RQCTL_NEXTQ_INDX_SHIFT) |
                        (0 << I40E_QINT_RQCTL_NEXTQ_TYPE_SHIFT) |
@@ -1668,7 +1669,7 @@ __vsi_queues_bind_intr(struct i40e_vsi *vsi, uint16_t msix_vect,
 }
 
 void
-i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
+i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi, uint16_t itr_idx)
 {
        struct rte_eth_dev *dev = vsi->adapter->eth_dev;
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
@@ -1696,7 +1697,8 @@ i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
        /* VF bind interrupt */
        if (vsi->type == I40E_VSI_SRIOV) {
                __vsi_queues_bind_intr(vsi, msix_vect,
-                                      vsi->base_queue, vsi->nb_qps);
+                                      vsi->base_queue, vsi->nb_qps,
+                                      itr_idx);
                return;
        }
 
@@ -1722,7 +1724,8 @@ i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
                        /* no enough msix_vect, map all to one */
                        __vsi_queues_bind_intr(vsi, msix_vect,
                                               vsi->base_queue + i,
-                                              vsi->nb_used_qps - i);
+                                              vsi->nb_used_qps - i,
+                                              itr_idx);
                        for (; !!record && i < vsi->nb_used_qps; i++)
                                intr_handle->intr_vec[queue_idx + i] =
                                        msix_vect;
@@ -1730,7 +1733,8 @@ i40e_vsi_queues_bind_intr(struct i40e_vsi *vsi)
                }
                /* 1:1 queue/msix_vect mapping */
                __vsi_queues_bind_intr(vsi, msix_vect,
-                                      vsi->base_queue + i, 1);
+                                      vsi->base_queue + i, 1,
+                                      itr_idx);
                if (!!record)
                        intr_handle->intr_vec[queue_idx + i] = msix_vect;
 
@@ -1959,19 +1963,21 @@ i40e_dev_start(struct rte_eth_dev *dev)
        /* Map queues with MSIX interrupt */
        main_vsi->nb_used_qps = dev->data->nb_rx_queues -
                pf->nb_cfg_vmdq_vsi * RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM;
-       i40e_vsi_queues_bind_intr(main_vsi);
+       i40e_vsi_queues_bind_intr(main_vsi, I40E_ITR_INDEX_DEFAULT);
        i40e_vsi_enable_queues_intr(main_vsi);
 
        /* Map VMDQ VSI queues with MSIX interrupt */
        for (i = 0; i < pf->nb_cfg_vmdq_vsi; i++) {
                pf->vmdq[i].vsi->nb_used_qps = RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM;
-               i40e_vsi_queues_bind_intr(pf->vmdq[i].vsi);
+               i40e_vsi_queues_bind_intr(pf->vmdq[i].vsi,
+                                         I40E_ITR_INDEX_DEFAULT);
                i40e_vsi_enable_queues_intr(pf->vmdq[i].vsi);
        }
 
        /* enable FDIR MSIX interrupt */
        if (pf->fdir.fdir_vsi) {
-               i40e_vsi_queues_bind_intr(pf->fdir.fdir_vsi);
+               i40e_vsi_queues_bind_intr(pf->fdir.fdir_vsi,
+                                         I40E_ITR_INDEX_NONE);
                i40e_vsi_enable_queues_intr(pf->fdir.fdir_vsi);
        }
 
@@ -3435,7 +3441,7 @@ i40e_macaddr_add(struct rte_eth_dev *dev,
                return -EINVAL;
        }
 
-       (void)rte_memcpy(&mac_filter.mac_addr, mac_addr, ETHER_ADDR_LEN);
+       rte_memcpy(&mac_filter.mac_addr, mac_addr, ETHER_ADDR_LEN);
        if (dev->data->dev_conf.rxmode.hw_vlan_filter)
                mac_filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
        else
@@ -3540,10 +3546,10 @@ i40e_vf_mac_filter_set(struct i40e_pf *pf,
        }
 
        if (add) {
-               (void)rte_memcpy(&old_mac, hw->mac.addr, ETHER_ADDR_LEN);
-               (void)rte_memcpy(hw->mac.addr, new_mac->addr_bytes,
+               rte_memcpy(&old_mac, hw->mac.addr, ETHER_ADDR_LEN);
+               rte_memcpy(hw->mac.addr, new_mac->addr_bytes,
                                ETHER_ADDR_LEN);
-               (void)rte_memcpy(&mac_filter.mac_addr, &filter->mac_addr,
+               rte_memcpy(&mac_filter.mac_addr, &filter->mac_addr,
                                 ETHER_ADDR_LEN);
 
                mac_filter.filter_type = filter->filter_type;
@@ -3554,7 +3560,7 @@ i40e_vf_mac_filter_set(struct i40e_pf *pf,
                }
                ether_addr_copy(new_mac, &pf->dev_addr);
        } else {
-               (void)rte_memcpy(hw->mac.addr, hw->mac.perm_addr,
+               rte_memcpy(hw->mac.addr, hw->mac.perm_addr,
                                ETHER_ADDR_LEN);
                ret = i40e_vsi_delete_mac(vf->vsi, &filter->mac_addr);
                if (ret != I40E_SUCCESS) {
@@ -4346,7 +4352,7 @@ i40e_vsi_vlan_pvid_set(struct i40e_vsi *vsi,
        vsi->info.valid_sections =
                rte_cpu_to_le_16(I40E_AQ_VSI_PROP_VLAN_VALID);
        memset(&ctxt, 0, sizeof(ctxt));
-       (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
+       rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
        ctxt.seid = vsi->seid;
 
        hw = I40E_VSI_TO_HW(vsi);
@@ -4385,7 +4391,7 @@ i40e_vsi_update_tc_bandwidth(struct i40e_vsi *vsi, uint8_t enabled_tcmap)
                return ret;
        }
 
-       (void)rte_memcpy(vsi->info.qs_handle, tc_bw_data.qs_handles,
+       rte_memcpy(vsi->info.qs_handle, tc_bw_data.qs_handles,
                                        sizeof(vsi->info.qs_handle));
        return I40E_SUCCESS;
 }
@@ -4642,7 +4648,7 @@ i40e_update_default_filter_setting(struct i40e_vsi *vsi)
        if (vsi->type != I40E_VSI_MAIN)
                return I40E_ERR_CONFIG;
        memset(&def_filter, 0, sizeof(def_filter));
-       (void)rte_memcpy(def_filter.mac_addr, hw->mac.perm_addr,
+       rte_memcpy(def_filter.mac_addr, hw->mac.perm_addr,
                                        ETH_ADDR_LEN);
        def_filter.vlan_tag = 0;
        def_filter.flags = I40E_AQC_MACVLAN_DEL_PERFECT_MATCH |
@@ -4661,7 +4667,7 @@ i40e_update_default_filter_setting(struct i40e_vsi *vsi)
                        return I40E_ERR_NO_MEMORY;
                }
                mac = &f->mac_info.mac_addr;
-               (void)rte_memcpy(&mac->addr_bytes, hw->mac.perm_addr,
+               rte_memcpy(&mac->addr_bytes, hw->mac.perm_addr,
                                ETH_ADDR_LEN);
                f->mac_info.filter_type = RTE_MACVLAN_PERFECT_MATCH;
                TAILQ_INSERT_TAIL(&vsi->mac_list, f, next);
@@ -4669,7 +4675,7 @@ i40e_update_default_filter_setting(struct i40e_vsi *vsi)
 
                return ret;
        }
-       (void)rte_memcpy(&filter.mac_addr,
+       rte_memcpy(&filter.mac_addr,
                (struct ether_addr *)(hw->mac.perm_addr), ETH_ADDR_LEN);
        filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
        return i40e_vsi_add_mac(vsi, &filter);
@@ -4930,7 +4936,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
                        PMD_DRV_LOG(ERR, "Failed to get VSI params");
                        goto fail_msix_alloc;
                }
-               (void)rte_memcpy(&vsi->info, &ctxt.info,
+               rte_memcpy(&vsi->info, &ctxt.info,
                        sizeof(struct i40e_aqc_vsi_properties_data));
                vsi->vsi_id = ctxt.vsi_number;
                vsi->info.valid_sections = 0;
@@ -4948,7 +4954,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
                        rte_cpu_to_le_16(I40E_AQ_VSI_PROP_VLAN_VALID);
                vsi->info.port_vlan_flags = I40E_AQ_VSI_PVLAN_MODE_ALL |
                                        I40E_AQ_VSI_PVLAN_EMOD_STR_BOTH;
-               (void)rte_memcpy(&ctxt.info, &vsi->info,
+               rte_memcpy(&ctxt.info, &vsi->info,
                        sizeof(struct i40e_aqc_vsi_properties_data));
                ret = i40e_vsi_config_tc_queue_mapping(vsi, &ctxt.info,
                                                I40E_DEFAULT_TCMAP);
@@ -4969,15 +4975,15 @@ i40e_vsi_setup(struct i40e_pf *pf,
                        goto fail_msix_alloc;
                }
 
-               (void)rte_memcpy(&vsi->info.tc_mapping, &ctxt.info.tc_mapping,
+               rte_memcpy(&vsi->info.tc_mapping, &ctxt.info.tc_mapping,
                                                sizeof(vsi->info.tc_mapping));
-               (void)rte_memcpy(&vsi->info.queue_mapping,
+               rte_memcpy(&vsi->info.queue_mapping,
                                &ctxt.info.queue_mapping,
                        sizeof(vsi->info.queue_mapping));
                vsi->info.mapping_flags = ctxt.info.mapping_flags;
                vsi->info.valid_sections = 0;
 
-               (void)rte_memcpy(pf->dev_addr.addr_bytes, hw->mac.perm_addr,
+               rte_memcpy(pf->dev_addr.addr_bytes, hw->mac.perm_addr,
                                ETH_ADDR_LEN);
 
                /**
@@ -5120,7 +5126,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
        }
 
        /* MAC/VLAN configuration */
-       (void)rte_memcpy(&filter.mac_addr, &broadcast, ETHER_ADDR_LEN);
+       rte_memcpy(&filter.mac_addr, &broadcast, ETHER_ADDR_LEN);
        filter.filter_type = RTE_MACVLAN_PERFECT_MATCH;
 
        ret = i40e_vsi_add_mac(vsi, &filter);
@@ -5232,7 +5238,7 @@ i40e_vsi_config_vlan_stripping(struct i40e_vsi *vsi, bool on)
        vsi->info.port_vlan_flags &= ~(I40E_AQ_VSI_PVLAN_EMOD_MASK);
        vsi->info.port_vlan_flags |= vlan_flags;
        ctxt.seid = vsi->seid;
-       (void)rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
+       rte_memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info));
        ret = i40e_aq_update_vsi_params(hw, &ctxt, NULL);
        if (ret)
                PMD_DRV_LOG(INFO, "Update VSI failed to %s vlan stripping",
@@ -6026,7 +6032,7 @@ i40e_add_macvlan_filters(struct i40e_vsi *vsi,
                memset(req_list, 0, ele_buff_size);
 
                for (i = 0; i < actual_num; i++) {
-                       (void)rte_memcpy(req_list[i].mac_addr,
+                       rte_memcpy(req_list[i].mac_addr,
                                &filter[num + i].macaddr, ETH_ADDR_LEN);
                        req_list[i].vlan_tag =
                                rte_cpu_to_le_16(filter[num + i].vlan_id);
@@ -6101,7 +6107,7 @@ i40e_remove_macvlan_filters(struct i40e_vsi *vsi,
                memset(req_list, 0, ele_buff_size);
 
                for (i = 0; i < actual_num; i++) {
-                       (void)rte_memcpy(req_list[i].mac_addr,
+                       rte_memcpy(req_list[i].mac_addr,
                                &filter[num + i].macaddr, ETH_ADDR_LEN);
                        req_list[i].vlan_tag =
                                rte_cpu_to_le_16(filter[num + i].vlan_id);
@@ -6252,7 +6258,7 @@ i40e_find_all_vlan_for_mac(struct i40e_vsi *vsi,
                                                        "vlan number doesn't match");
                                                return I40E_ERR_PARAM;
                                        }
-                                       (void)rte_memcpy(&mv_f[i].macaddr,
+                                       rte_memcpy(&mv_f[i].macaddr,
                                                        addr, ETH_ADDR_LEN);
                                        mv_f[i].vlan_id =
                                                j * I40E_UINT32_BIT_SIZE + k;
@@ -6281,7 +6287,7 @@ i40e_find_all_mac_for_vlan(struct i40e_vsi *vsi,
                        PMD_DRV_LOG(ERR, "buffer number not match");
                        return I40E_ERR_PARAM;
                }
-               (void)rte_memcpy(&mv_f[i].macaddr, &f->mac_info.mac_addr,
+               rte_memcpy(&mv_f[i].macaddr, &f->mac_info.mac_addr,
                                ETH_ADDR_LEN);
                mv_f[i].vlan_id = vlan;
                mv_f[i].filter_type = f->mac_info.filter_type;
@@ -6317,7 +6323,7 @@ i40e_vsi_remove_all_macvlan_filter(struct i40e_vsi *vsi)
        i = 0;
        if (vsi->vlan_num == 0) {
                TAILQ_FOREACH(f, &vsi->mac_list, next) {
-                       (void)rte_memcpy(&mv_f[i].macaddr,
+                       rte_memcpy(&mv_f[i].macaddr,
                                &f->mac_info.mac_addr, ETH_ADDR_LEN);
                        mv_f[i].filter_type = f->mac_info.filter_type;
                        mv_f[i].vlan_id = 0;
@@ -6487,7 +6493,7 @@ i40e_vsi_add_mac(struct i40e_vsi *vsi, struct i40e_mac_filter_info *mac_filter)
 
        for (i = 0; i < vlan_num; i++) {
                mv_f[i].filter_type = mac_filter->filter_type;
-               (void)rte_memcpy(&mv_f[i].macaddr, &mac_filter->mac_addr,
+               rte_memcpy(&mv_f[i].macaddr, &mac_filter->mac_addr,
                                ETH_ADDR_LEN);
        }
 
@@ -6510,7 +6516,7 @@ i40e_vsi_add_mac(struct i40e_vsi *vsi, struct i40e_mac_filter_info *mac_filter)
                ret = I40E_ERR_NO_MEMORY;
                goto DONE;
        }
-       (void)rte_memcpy(&f->mac_info.mac_addr, &mac_filter->mac_addr,
+       rte_memcpy(&f->mac_info.mac_addr, &mac_filter->mac_addr,
                        ETH_ADDR_LEN);
        f->mac_info.filter_type = mac_filter->filter_type;
        TAILQ_INSERT_TAIL(&vsi->mac_list, f, next);
@@ -6557,7 +6563,7 @@ i40e_vsi_delete_mac(struct i40e_vsi *vsi, struct ether_addr *addr)
 
        for (i = 0; i < vlan_num; i++) {
                mv_f[i].filter_type = filter_type;
-               (void)rte_memcpy(&mv_f[i].macaddr, &f->mac_info.mac_addr,
+               rte_memcpy(&mv_f[i].macaddr, &f->mac_info.mac_addr,
                                ETH_ADDR_LEN);
        }
        if (filter_type == RTE_MACVLAN_PERFECT_MATCH ||
@@ -10283,9 +10289,9 @@ i40e_vsi_config_tc(struct i40e_vsi *vsi, uint8_t tc_map)
                goto out;
        }
        /* update the local VSI info with updated queue map */
-       (void)rte_memcpy(&vsi->info.tc_mapping, &ctxt.info.tc_mapping,
+       rte_memcpy(&vsi->info.tc_mapping, &ctxt.info.tc_mapping,
                                        sizeof(vsi->info.tc_mapping));
-       (void)rte_memcpy(&vsi->info.queue_mapping,
+       rte_memcpy(&vsi->info.queue_mapping,
                        &ctxt.info.queue_mapping,
                sizeof(vsi->info.queue_mapping));
        vsi->info.mapping_flags = ctxt.info.mapping_flags;