aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ice/ice_lib.c
diff options
context:
space:
mode:
authorAnirudh Venkataramanan <anirudh.venkataramanan@intel.com>2018-09-19 20:23:12 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2018-10-02 10:11:57 -0400
commit5726ca0e5eaad0f194979e66c29c1d22029f1041 (patch)
treefe663c8f698de552d93dd2a053a5bdf09ee33a34 /drivers/net/ethernet/intel/ice/ice_lib.c
parent024926def6ca95819442699fbecc1fe376253fb9 (diff)
ice: Expand use of VSI handles part 1/2
A VSI handle is just a number the driver maintains to uniquely identify a VSI. A VSI handle is backed by a VSI number in the hardware. When interacting when the hardware, VSI handles are converted into VSI numbers. In commit 0f9d5027a749 ("ice: Refactor VSI allocation, deletion and rebuild flow"), VSI handles were introduced but it was used only when creating and deleting VSIs. This patch is part one of two patches that expands the use of VSI handles across the rest of the driver. Also in this patch, certain parts of the code had to be refactored to correctly use VSI handles. Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_lib.c')
-rw-r--r--drivers/net/ethernet/intel/ice/ice_lib.c28
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c
index 95588fe0e22f..b44ccdb56952 100644
--- a/drivers/net/ethernet/intel/ice/ice_lib.c
+++ b/drivers/net/ethernet/intel/ice/ice_lib.c
@@ -1290,10 +1290,10 @@ int ice_add_mac_to_list(struct ice_vsi *vsi, struct list_head *add_list,
1290 return -ENOMEM; 1290 return -ENOMEM;
1291 1291
1292 tmp->fltr_info.flag = ICE_FLTR_TX; 1292 tmp->fltr_info.flag = ICE_FLTR_TX;
1293 tmp->fltr_info.src = vsi->vsi_num; 1293 tmp->fltr_info.src_id = ICE_SRC_ID_VSI;
1294 tmp->fltr_info.lkup_type = ICE_SW_LKUP_MAC; 1294 tmp->fltr_info.lkup_type = ICE_SW_LKUP_MAC;
1295 tmp->fltr_info.fltr_act = ICE_FWD_TO_VSI; 1295 tmp->fltr_info.fltr_act = ICE_FWD_TO_VSI;
1296 tmp->fltr_info.fwd_id.vsi_id = vsi->vsi_num; 1296 tmp->fltr_info.vsi_handle = vsi->idx;
1297 ether_addr_copy(tmp->fltr_info.l_data.mac.mac_addr, macaddr); 1297 ether_addr_copy(tmp->fltr_info.l_data.mac.mac_addr, macaddr);
1298 1298
1299 INIT_LIST_HEAD(&tmp->list_entry); 1299 INIT_LIST_HEAD(&tmp->list_entry);
@@ -1394,8 +1394,8 @@ int ice_vsi_add_vlan(struct ice_vsi *vsi, u16 vid)
1394 tmp->fltr_info.lkup_type = ICE_SW_LKUP_VLAN; 1394 tmp->fltr_info.lkup_type = ICE_SW_LKUP_VLAN;
1395 tmp->fltr_info.fltr_act = ICE_FWD_TO_VSI; 1395 tmp->fltr_info.fltr_act = ICE_FWD_TO_VSI;
1396 tmp->fltr_info.flag = ICE_FLTR_TX; 1396 tmp->fltr_info.flag = ICE_FLTR_TX;
1397 tmp->fltr_info.src = vsi->vsi_num; 1397 tmp->fltr_info.src_id = ICE_SRC_ID_VSI;
1398 tmp->fltr_info.fwd_id.vsi_id = vsi->vsi_num; 1398 tmp->fltr_info.vsi_handle = vsi->idx;
1399 tmp->fltr_info.l_data.vlan.vlan_id = vid; 1399 tmp->fltr_info.l_data.vlan.vlan_id = vid;
1400 1400
1401 INIT_LIST_HEAD(&tmp->list_entry); 1401 INIT_LIST_HEAD(&tmp->list_entry);
@@ -1431,11 +1431,11 @@ int ice_vsi_kill_vlan(struct ice_vsi *vsi, u16 vid)
1431 return -ENOMEM; 1431 return -ENOMEM;
1432 1432
1433 list->fltr_info.lkup_type = ICE_SW_LKUP_VLAN; 1433 list->fltr_info.lkup_type = ICE_SW_LKUP_VLAN;
1434 list->fltr_info.fwd_id.vsi_id = vsi->vsi_num; 1434 list->fltr_info.vsi_handle = vsi->idx;
1435 list->fltr_info.fltr_act = ICE_FWD_TO_VSI; 1435 list->fltr_info.fltr_act = ICE_FWD_TO_VSI;
1436 list->fltr_info.l_data.vlan.vlan_id = vid; 1436 list->fltr_info.l_data.vlan.vlan_id = vid;
1437 list->fltr_info.flag = ICE_FLTR_TX; 1437 list->fltr_info.flag = ICE_FLTR_TX;
1438 list->fltr_info.src = vsi->vsi_num; 1438 list->fltr_info.src_id = ICE_SRC_ID_VSI;
1439 1439
1440 INIT_LIST_HEAD(&list->list_entry); 1440 INIT_LIST_HEAD(&list->list_entry);
1441 list_add(&list->list_entry, &tmp_add_list); 1441 list_add(&list->list_entry, &tmp_add_list);
@@ -1636,9 +1636,8 @@ int ice_vsi_manage_vlan_insertion(struct ice_vsi *vsi)
1636 ctxt.info.vlan_flags = ICE_AQ_VSI_VLAN_MODE_ALL; 1636 ctxt.info.vlan_flags = ICE_AQ_VSI_VLAN_MODE_ALL;
1637 1637
1638 ctxt.info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID); 1638 ctxt.info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID);
1639 ctxt.vsi_num = vsi->vsi_num;
1640 1639
1641 status = ice_aq_update_vsi(hw, &ctxt, NULL); 1640 status = ice_update_vsi(hw, vsi->idx, &ctxt, NULL);
1642 if (status) { 1641 if (status) {
1643 dev_err(dev, "update VSI for VLAN insert failed, err %d aq_err %d\n", 1642 dev_err(dev, "update VSI for VLAN insert failed, err %d aq_err %d\n",
1644 status, hw->adminq.sq_last_status); 1643 status, hw->adminq.sq_last_status);
@@ -1677,9 +1676,8 @@ int ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi, bool ena)
1677 ctxt.info.vlan_flags |= ICE_AQ_VSI_VLAN_MODE_ALL; 1676 ctxt.info.vlan_flags |= ICE_AQ_VSI_VLAN_MODE_ALL;
1678 1677
1679 ctxt.info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID); 1678 ctxt.info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_VLAN_VALID);
1680 ctxt.vsi_num = vsi->vsi_num;
1681 1679
1682 status = ice_aq_update_vsi(hw, &ctxt, NULL); 1680 status = ice_update_vsi(hw, vsi->idx, &ctxt, NULL);
1683 if (status) { 1681 if (status) {
1684 dev_err(dev, "update VSI for VLAN strip failed, ena = %d err %d aq_err %d\n", 1682 dev_err(dev, "update VSI for VLAN strip failed, ena = %d err %d aq_err %d\n",
1685 ena, status, hw->adminq.sq_last_status); 1683 ena, status, hw->adminq.sq_last_status);
@@ -1829,11 +1827,11 @@ int ice_cfg_vlan_pruning(struct ice_vsi *vsi, bool ena)
1829 1827
1830 ctxt->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_SECURITY_VALID | 1828 ctxt->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_SECURITY_VALID |
1831 ICE_AQ_VSI_PROP_SW_VALID); 1829 ICE_AQ_VSI_PROP_SW_VALID);
1832 ctxt->vsi_num = vsi->vsi_num; 1830
1833 status = ice_aq_update_vsi(&vsi->back->hw, ctxt, NULL); 1831 status = ice_update_vsi(&vsi->back->hw, vsi->idx, ctxt, NULL);
1834 if (status) { 1832 if (status) {
1835 netdev_err(vsi->netdev, "%sabling VLAN pruning on VSI %d failed, err = %d, aq_err = %d\n", 1833 netdev_err(vsi->netdev, "%sabling VLAN pruning on VSI handle: %d, VSI HW ID: %d failed, err = %d, aq_err = %d\n",
1836 ena ? "Ena" : "Dis", vsi->vsi_num, status, 1834 ena ? "Ena" : "Dis", vsi->idx, vsi->vsi_num, status,
1837 vsi->back->hw.adminq.sq_last_status); 1835 vsi->back->hw.adminq.sq_last_status);
1838 goto err_out; 1836 goto err_out;
1839 } 1837 }
@@ -2267,7 +2265,7 @@ int ice_vsi_release(struct ice_vsi *vsi)
2267 ice_free_res(vsi->back->irq_tracker, vsi->base_vector, vsi->idx); 2265 ice_free_res(vsi->back->irq_tracker, vsi->base_vector, vsi->idx);
2268 pf->num_avail_msix += vsi->num_q_vectors; 2266 pf->num_avail_msix += vsi->num_q_vectors;
2269 2267
2270 ice_remove_vsi_fltr(&pf->hw, vsi->vsi_num); 2268 ice_remove_vsi_fltr(&pf->hw, vsi->idx);
2271 ice_vsi_delete(vsi); 2269 ice_vsi_delete(vsi);
2272 ice_vsi_free_q_vectors(vsi); 2270 ice_vsi_free_q_vectors(vsi);
2273 ice_vsi_clear_rings(vsi); 2271 ice_vsi_clear_rings(vsi);