Lines Matching refs:vf

24 	struct i40e_vf *vf = pf->vf;  in i40e_vc_vf_broadcast()  local
27 for (i = 0; i < pf->num_alloc_vfs; i++, vf++) { in i40e_vc_vf_broadcast()
28 int abs_vf_id = vf->vf_id + (int)hw->func_caps.vf_base_id; in i40e_vc_vf_broadcast()
30 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states) && in i40e_vc_vf_broadcast()
31 !test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) in i40e_vc_vf_broadcast()
83 static void i40e_set_vf_link_state(struct i40e_vf *vf, in i40e_set_vf_link_state() argument
88 if (vf->link_forced) in i40e_set_vf_link_state()
89 link_status = vf->link_up; in i40e_set_vf_link_state()
91 if (vf->driver_caps & VIRTCHNL_VF_CAP_ADV_LINK_SPEED) { in i40e_set_vf_link_state()
108 static void i40e_vc_notify_vf_link_state(struct i40e_vf *vf) in i40e_vc_notify_vf_link_state() argument
111 struct i40e_pf *pf = vf->pf; in i40e_vc_notify_vf_link_state()
114 int abs_vf_id = vf->vf_id + (int)hw->func_caps.vf_base_id; in i40e_vc_notify_vf_link_state()
119 i40e_set_vf_link_state(vf, &pfe, ls); in i40e_vc_notify_vf_link_state()
136 i40e_vc_notify_vf_link_state(&pf->vf[i]); in i40e_vc_notify_link_state()
161 void i40e_vc_notify_vf_reset(struct i40e_vf *vf) in i40e_vc_notify_vf_reset() argument
167 if (!vf || vf->vf_id >= vf->pf->num_alloc_vfs) in i40e_vc_notify_vf_reset()
171 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states) && in i40e_vc_notify_vf_reset()
172 !test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) in i40e_vc_notify_vf_reset()
175 abs_vf_id = vf->vf_id + (int)vf->pf->hw.func_caps.vf_base_id; in i40e_vc_notify_vf_reset()
179 i40e_aq_send_msg_to_vf(&vf->pf->hw, abs_vf_id, VIRTCHNL_OP_EVENT, in i40e_vc_notify_vf_reset()
191 static void i40e_vc_reset_vf(struct i40e_vf *vf, bool notify_vf) in i40e_vc_reset_vf() argument
193 struct i40e_pf *pf = vf->pf; in i40e_vc_reset_vf()
197 i40e_vc_notify_vf_reset(vf); in i40e_vc_reset_vf()
210 if (i40e_reset_vf(vf, false)) in i40e_vc_reset_vf()
216 dev_warn(&vf->pf->pdev->dev, in i40e_vc_reset_vf()
218 vf->vf_id); in i40e_vc_reset_vf()
220 dev_dbg(&vf->pf->pdev->dev, in i40e_vc_reset_vf()
222 vf->vf_id); in i40e_vc_reset_vf()
232 static inline bool i40e_vc_isvalid_vsi_id(struct i40e_vf *vf, u16 vsi_id) in i40e_vc_isvalid_vsi_id() argument
234 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_vsi_id()
237 return (vsi && (vsi->vf_id == vf->vf_id)); in i40e_vc_isvalid_vsi_id()
248 static inline bool i40e_vc_isvalid_queue_id(struct i40e_vf *vf, u16 vsi_id, in i40e_vc_isvalid_queue_id() argument
251 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_queue_id()
264 static inline bool i40e_vc_isvalid_vector_id(struct i40e_vf *vf, u32 vector_id) in i40e_vc_isvalid_vector_id() argument
266 struct i40e_pf *pf = vf->pf; in i40e_vc_isvalid_vector_id()
281 static u16 i40e_vc_get_pf_queue_id(struct i40e_vf *vf, u16 vsi_id, in i40e_vc_get_pf_queue_id() argument
284 struct i40e_pf *pf = vf->pf; in i40e_vc_get_pf_queue_id()
310 static u16 i40e_get_real_pf_qid(struct i40e_vf *vf, u16 vsi_id, u16 queue_id) in i40e_get_real_pf_qid() argument
314 if (vf->adq_enabled) { in i40e_get_real_pf_qid()
319 for (i = 0; i < vf->num_tc; i++) { in i40e_get_real_pf_qid()
320 if (queue_id < vf->ch[i].num_qps) { in i40e_get_real_pf_qid()
321 vsi_id = vf->ch[i].vsi_id; in i40e_get_real_pf_qid()
327 queue_id -= vf->ch[i].num_qps; in i40e_get_real_pf_qid()
331 return i40e_vc_get_pf_queue_id(vf, vsi_id, queue_id); in i40e_get_real_pf_qid()
342 static void i40e_config_irq_link_list(struct i40e_vf *vf, u16 vsi_id, in i40e_config_irq_link_list() argument
346 struct i40e_pf *pf = vf->pf; in i40e_config_irq_link_list()
357 reg_idx = I40E_VPINT_LNKLST0(vf->vf_id); in i40e_config_irq_link_list()
360 ((pf->hw.func_caps.num_msix_vectors_vf - 1) * vf->vf_id) + in i40e_config_irq_link_list()
387 pf_queue_id = i40e_get_real_pf_qid(vf, vsi_id, vsi_queue_id); in i40e_config_irq_link_list()
410 pf_queue_id = i40e_get_real_pf_qid(vf, in i40e_config_irq_link_list()
430 if ((vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RX_POLLING) && in i40e_config_irq_link_list()
448 static void i40e_release_rdma_qvlist(struct i40e_vf *vf) in i40e_release_rdma_qvlist() argument
450 struct i40e_pf *pf = vf->pf; in i40e_release_rdma_qvlist()
451 struct virtchnl_rdma_qvlist_info *qvlist_info = vf->qvlist_info; in i40e_release_rdma_qvlist()
455 if (!vf->qvlist_info) in i40e_release_rdma_qvlist()
473 reg_idx = (msix_vf - 1) * vf->vf_id + qv_info->ceq_idx; in i40e_release_rdma_qvlist()
480 reg_idx = ((msix_vf - 1) * vf->vf_id) + (v_idx - 1); in i40e_release_rdma_qvlist()
489 kfree(vf->qvlist_info); in i40e_release_rdma_qvlist()
490 vf->qvlist_info = NULL; in i40e_release_rdma_qvlist()
501 i40e_config_rdma_qvlist(struct i40e_vf *vf, in i40e_config_rdma_qvlist() argument
504 struct i40e_pf *pf = vf->pf; in i40e_config_rdma_qvlist()
523 kfree(vf->qvlist_info); in i40e_config_rdma_qvlist()
524 vf->qvlist_info = kzalloc(struct_size(vf->qvlist_info, qv_info, in i40e_config_rdma_qvlist()
527 if (!vf->qvlist_info) { in i40e_config_rdma_qvlist()
531 vf->qvlist_info->num_vectors = qvlist_info->num_vectors; in i40e_config_rdma_qvlist()
540 if (!i40e_vc_isvalid_vector_id(vf, qv_info->v_idx)) { in i40e_config_rdma_qvlist()
547 vf->qvlist_info->qv_info[i] = *qv_info; in i40e_config_rdma_qvlist()
549 reg_idx = ((msix_vf - 1) * vf->vf_id) + (v_idx - 1); in i40e_config_rdma_qvlist()
561 reg_idx = (msix_vf - 1) * vf->vf_id + qv_info->ceq_idx; in i40e_config_rdma_qvlist()
569 reg_idx = ((msix_vf - 1) * vf->vf_id) + (v_idx - 1); in i40e_config_rdma_qvlist()
582 wr32(hw, I40E_VPINT_AEQCTL(vf->vf_id), reg); in i40e_config_rdma_qvlist()
588 kfree(vf->qvlist_info); in i40e_config_rdma_qvlist()
589 vf->qvlist_info = NULL; in i40e_config_rdma_qvlist()
603 static int i40e_config_vsi_tx_queue(struct i40e_vf *vf, u16 vsi_id, in i40e_config_vsi_tx_queue() argument
607 struct i40e_pf *pf = vf->pf; in i40e_config_vsi_tx_queue()
615 if (!i40e_vc_isvalid_vsi_id(vf, info->vsi_id)) { in i40e_config_vsi_tx_queue()
619 pf_queue_id = i40e_vc_get_pf_queue_id(vf, vsi_id, vsi_queue_id); in i40e_config_vsi_tx_queue()
661 qtx_ctl |= (((vf->vf_id + hw->func_caps.vf_base_id) in i40e_config_vsi_tx_queue()
680 static int i40e_config_vsi_rx_queue(struct i40e_vf *vf, u16 vsi_id, in i40e_config_vsi_rx_queue() argument
684 u16 pf_queue_id = i40e_vc_get_pf_queue_id(vf, vsi_id, vsi_queue_id); in i40e_config_vsi_rx_queue()
685 struct i40e_pf *pf = vf->pf; in i40e_config_vsi_rx_queue()
686 struct i40e_vsi *vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_config_vsi_rx_queue()
772 static int i40e_alloc_vsi_res(struct i40e_vf *vf, u8 idx) in i40e_alloc_vsi_res() argument
775 struct i40e_pf *pf = vf->pf; in i40e_alloc_vsi_res()
781 vf->vf_id); in i40e_alloc_vsi_res()
786 vf->vf_id, pf->hw.aq.asq_last_status); in i40e_alloc_vsi_res()
795 vf->lan_vsi_idx = vsi->idx; in i40e_alloc_vsi_res()
796 vf->lan_vsi_id = vsi->id; in i40e_alloc_vsi_res()
803 if (vf->port_vlan_id) in i40e_alloc_vsi_res()
804 i40e_vsi_add_pvid(vsi, vf->port_vlan_id); in i40e_alloc_vsi_res()
807 if (is_valid_ether_addr(vf->default_lan_addr.addr)) { in i40e_alloc_vsi_res()
809 vf->default_lan_addr.addr); in i40e_alloc_vsi_res()
813 vf->default_lan_addr.addr, vf->vf_id); in i40e_alloc_vsi_res()
821 wr32(&pf->hw, I40E_VFQF_HENA1(0, vf->vf_id), (u32)hena); in i40e_alloc_vsi_res()
822 wr32(&pf->hw, I40E_VFQF_HENA1(1, vf->vf_id), (u32)(hena >> 32)); in i40e_alloc_vsi_res()
830 if (vf->adq_enabled) { in i40e_alloc_vsi_res()
831 vf->ch[idx].vsi_idx = vsi->idx; in i40e_alloc_vsi_res()
832 vf->ch[idx].vsi_id = vsi->id; in i40e_alloc_vsi_res()
836 if (vf->tx_rate) { in i40e_alloc_vsi_res()
837 max_tx_rate = vf->tx_rate; in i40e_alloc_vsi_res()
838 } else if (vf->ch[idx].max_tx_rate) { in i40e_alloc_vsi_res()
839 max_tx_rate = vf->ch[idx].max_tx_rate; in i40e_alloc_vsi_res()
848 vf->vf_id, ret); in i40e_alloc_vsi_res()
862 static void i40e_map_pf_queues_to_vsi(struct i40e_vf *vf) in i40e_map_pf_queues_to_vsi() argument
864 struct i40e_pf *pf = vf->pf; in i40e_map_pf_queues_to_vsi()
870 if (vf->adq_enabled) in i40e_map_pf_queues_to_vsi()
871 num_tc = vf->num_tc; in i40e_map_pf_queues_to_vsi()
874 if (vf->adq_enabled) { in i40e_map_pf_queues_to_vsi()
875 qps = vf->ch[i].num_qps; in i40e_map_pf_queues_to_vsi()
876 vsi_id = vf->ch[i].vsi_id; in i40e_map_pf_queues_to_vsi()
878 qps = pf->vsi[vf->lan_vsi_idx]->alloc_queue_pairs; in i40e_map_pf_queues_to_vsi()
879 vsi_id = vf->lan_vsi_id; in i40e_map_pf_queues_to_vsi()
887 u16 qid = i40e_vc_get_pf_queue_id(vf, in i40e_map_pf_queues_to_vsi()
891 qid = i40e_vc_get_pf_queue_id(vf, vsi_id, in i40e_map_pf_queues_to_vsi()
909 static void i40e_map_pf_to_vf_queues(struct i40e_vf *vf) in i40e_map_pf_to_vf_queues() argument
911 struct i40e_pf *pf = vf->pf; in i40e_map_pf_to_vf_queues()
918 if (vf->adq_enabled) in i40e_map_pf_to_vf_queues()
919 num_tc = vf->num_tc; in i40e_map_pf_to_vf_queues()
922 if (vf->adq_enabled) { in i40e_map_pf_to_vf_queues()
923 qps = vf->ch[i].num_qps; in i40e_map_pf_to_vf_queues()
924 vsi_id = vf->ch[i].vsi_id; in i40e_map_pf_to_vf_queues()
926 qps = pf->vsi[vf->lan_vsi_idx]->alloc_queue_pairs; in i40e_map_pf_to_vf_queues()
927 vsi_id = vf->lan_vsi_id; in i40e_map_pf_to_vf_queues()
931 qid = i40e_vc_get_pf_queue_id(vf, vsi_id, j); in i40e_map_pf_to_vf_queues()
934 wr32(hw, I40E_VPLAN_QTABLE(total_qps, vf->vf_id), in i40e_map_pf_to_vf_queues()
947 static void i40e_enable_vf_mappings(struct i40e_vf *vf) in i40e_enable_vf_mappings() argument
949 struct i40e_pf *pf = vf->pf; in i40e_enable_vf_mappings()
957 i40e_write_rx_ctl(hw, I40E_VSILAN_QBASE(vf->lan_vsi_id), in i40e_enable_vf_mappings()
962 wr32(hw, I40E_VPLAN_MAPENA(vf->vf_id), reg); in i40e_enable_vf_mappings()
964 i40e_map_pf_to_vf_queues(vf); in i40e_enable_vf_mappings()
965 i40e_map_pf_queues_to_vsi(vf); in i40e_enable_vf_mappings()
976 static void i40e_disable_vf_mappings(struct i40e_vf *vf) in i40e_disable_vf_mappings() argument
978 struct i40e_pf *pf = vf->pf; in i40e_disable_vf_mappings()
983 wr32(hw, I40E_VPLAN_MAPENA(vf->vf_id), 0); in i40e_disable_vf_mappings()
985 wr32(hw, I40E_VPLAN_QTABLE(i, vf->vf_id), in i40e_disable_vf_mappings()
996 static void i40e_free_vf_res(struct i40e_vf *vf) in i40e_free_vf_res() argument
998 struct i40e_pf *pf = vf->pf; in i40e_free_vf_res()
1006 clear_bit(I40E_VF_STATE_INIT, &vf->vf_states); in i40e_free_vf_res()
1011 if (vf->num_queue_pairs > I40E_DEFAULT_QUEUES_PER_VF) { in i40e_free_vf_res()
1012 pf->queues_left += vf->num_queue_pairs - in i40e_free_vf_res()
1017 if (vf->lan_vsi_idx) { in i40e_free_vf_res()
1018 i40e_vsi_release(pf->vsi[vf->lan_vsi_idx]); in i40e_free_vf_res()
1019 vf->lan_vsi_idx = 0; in i40e_free_vf_res()
1020 vf->lan_vsi_id = 0; in i40e_free_vf_res()
1024 if (vf->adq_enabled && vf->ch[0].vsi_idx) { in i40e_free_vf_res()
1025 for (j = 0; j < vf->num_tc; j++) { in i40e_free_vf_res()
1031 i40e_vsi_release(pf->vsi[vf->ch[j].vsi_idx]); in i40e_free_vf_res()
1032 vf->ch[j].vsi_idx = 0; in i40e_free_vf_res()
1033 vf->ch[j].vsi_id = 0; in i40e_free_vf_res()
1042 reg_idx = I40E_VFINT_DYN_CTL0(vf->vf_id); in i40e_free_vf_res()
1045 (vf->vf_id)) in i40e_free_vf_res()
1055 reg_idx = I40E_VPINT_LNKLST0(vf->vf_id); in i40e_free_vf_res()
1058 (vf->vf_id)) in i40e_free_vf_res()
1066 vf->num_queue_pairs = 0; in i40e_free_vf_res()
1067 clear_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states); in i40e_free_vf_res()
1068 clear_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states); in i40e_free_vf_res()
1077 static int i40e_alloc_vf_res(struct i40e_vf *vf) in i40e_alloc_vf_res() argument
1079 struct i40e_pf *pf = vf->pf; in i40e_alloc_vf_res()
1083 if (vf->num_req_queues && in i40e_alloc_vf_res()
1084 vf->num_req_queues <= pf->queues_left + I40E_DEFAULT_QUEUES_PER_VF) in i40e_alloc_vf_res()
1085 pf->num_vf_qps = vf->num_req_queues; in i40e_alloc_vf_res()
1090 ret = i40e_alloc_vsi_res(vf, 0); in i40e_alloc_vf_res()
1093 total_queue_pairs += pf->vsi[vf->lan_vsi_idx]->alloc_queue_pairs; in i40e_alloc_vf_res()
1096 if (vf->adq_enabled) { in i40e_alloc_vf_res()
1100 for (idx = 1; idx < vf->num_tc; idx++) { in i40e_alloc_vf_res()
1101 ret = i40e_alloc_vsi_res(vf, idx); in i40e_alloc_vf_res()
1109 vf->vf_id); in i40e_alloc_vf_res()
1110 vf->adq_enabled = false; in i40e_alloc_vf_res()
1123 if (vf->trusted) in i40e_alloc_vf_res()
1124 set_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps); in i40e_alloc_vf_res()
1126 clear_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps); in i40e_alloc_vf_res()
1131 vf->num_queue_pairs = total_queue_pairs; in i40e_alloc_vf_res()
1134 set_bit(I40E_VF_STATE_INIT, &vf->vf_states); in i40e_alloc_vf_res()
1138 i40e_free_vf_res(vf); in i40e_alloc_vf_res()
1152 static int i40e_quiesce_vf_pci(struct i40e_vf *vf) in i40e_quiesce_vf_pci() argument
1154 struct i40e_pf *pf = vf->pf; in i40e_quiesce_vf_pci()
1159 vf_abs_id = vf->vf_id + hw->func_caps.vf_base_id; in i40e_quiesce_vf_pci()
1251 i40e_set_vsi_promisc(struct i40e_vf *vf, u16 seid, bool multi_enable, in i40e_set_vsi_promisc() argument
1254 struct i40e_pf *pf = vf->pf; in i40e_set_vsi_promisc()
1269 vf->vf_id, in i40e_set_vsi_promisc()
1285 vf->vf_id, in i40e_set_vsi_promisc()
1302 vf->vf_id, in i40e_set_vsi_promisc()
1318 vf->vf_id, in i40e_set_vsi_promisc()
1343 static int i40e_config_vf_promiscuous_mode(struct i40e_vf *vf, in i40e_config_vf_promiscuous_mode() argument
1348 struct i40e_pf *pf = vf->pf; in i40e_config_vf_promiscuous_mode()
1355 if (!i40e_vc_isvalid_vsi_id(vf, vsi_id) || !vsi) in i40e_config_vf_promiscuous_mode()
1358 if (vf->port_vlan_id) { in i40e_config_vf_promiscuous_mode()
1359 aq_ret = i40e_set_vsi_promisc(vf, vsi->seid, allmulti, in i40e_config_vf_promiscuous_mode()
1360 alluni, &vf->port_vlan_id, 1); in i40e_config_vf_promiscuous_mode()
1368 aq_ret = i40e_set_vsi_promisc(vf, vsi->seid, allmulti, alluni, in i40e_config_vf_promiscuous_mode()
1375 aq_ret = i40e_set_vsi_promisc(vf, vsi->seid, allmulti, alluni, in i40e_config_vf_promiscuous_mode()
1415 static void i40e_trigger_vf_reset(struct i40e_vf *vf, bool flr) in i40e_trigger_vf_reset() argument
1417 struct i40e_pf *pf = vf->pf; in i40e_trigger_vf_reset()
1424 vf_active = test_and_clear_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states); in i40e_trigger_vf_reset()
1432 clear_bit(I40E_VF_STATE_INIT, &vf->vf_states); in i40e_trigger_vf_reset()
1439 radq = rd32(hw, I40E_VFINT_ICR0_ENA(vf->vf_id)) & in i40e_trigger_vf_reset()
1443 if (i40e_sync_vfr_reset(hw, vf->vf_id)) in i40e_trigger_vf_reset()
1446 vf->vf_id); in i40e_trigger_vf_reset()
1451 reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id)); in i40e_trigger_vf_reset()
1453 wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); in i40e_trigger_vf_reset()
1457 reg_idx = (hw->func_caps.vf_base_id + vf->vf_id) / 32; in i40e_trigger_vf_reset()
1458 bit_idx = (hw->func_caps.vf_base_id + vf->vf_id) % 32; in i40e_trigger_vf_reset()
1462 if (i40e_quiesce_vf_pci(vf)) in i40e_trigger_vf_reset()
1464 vf->vf_id); in i40e_trigger_vf_reset()
1475 static void i40e_cleanup_reset_vf(struct i40e_vf *vf) in i40e_cleanup_reset_vf() argument
1477 struct i40e_pf *pf = vf->pf; in i40e_cleanup_reset_vf()
1482 i40e_config_vf_promiscuous_mode(vf, vf->lan_vsi_id, false, false); in i40e_cleanup_reset_vf()
1485 i40e_free_vf_res(vf); in i40e_cleanup_reset_vf()
1497 reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id)); in i40e_cleanup_reset_vf()
1499 wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); in i40e_cleanup_reset_vf()
1502 if (!i40e_alloc_vf_res(vf)) { in i40e_cleanup_reset_vf()
1503 int abs_vf_id = vf->vf_id + hw->func_caps.vf_base_id; in i40e_cleanup_reset_vf()
1504 i40e_enable_vf_mappings(vf); in i40e_cleanup_reset_vf()
1505 set_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states); in i40e_cleanup_reset_vf()
1506 clear_bit(I40E_VF_STATE_DISABLED, &vf->vf_states); in i40e_cleanup_reset_vf()
1509 &vf->vf_states)) in i40e_cleanup_reset_vf()
1511 vf->num_vlan = 0; in i40e_cleanup_reset_vf()
1518 wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), VIRTCHNL_VFR_VFACTIVE); in i40e_cleanup_reset_vf()
1529 bool i40e_reset_vf(struct i40e_vf *vf, bool flr) in i40e_reset_vf() argument
1531 struct i40e_pf *pf = vf->pf; in i40e_reset_vf()
1545 if (test_and_set_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) in i40e_reset_vf()
1548 i40e_trigger_vf_reset(vf, flr); in i40e_reset_vf()
1560 reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); in i40e_reset_vf()
1572 vf->vf_id); in i40e_reset_vf()
1576 if (vf->lan_vsi_idx != 0) in i40e_reset_vf()
1577 i40e_vsi_stop_rings(pf->vsi[vf->lan_vsi_idx]); in i40e_reset_vf()
1579 i40e_cleanup_reset_vf(vf); in i40e_reset_vf()
1583 clear_bit(I40E_VF_STATE_RESETTING, &vf->vf_states); in i40e_reset_vf()
1603 struct i40e_vf *vf; in i40e_reset_all_vfs() local
1617 vf = &pf->vf[v]; in i40e_reset_all_vfs()
1619 if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) in i40e_reset_all_vfs()
1620 i40e_trigger_vf_reset(&pf->vf[v], flr); in i40e_reset_all_vfs()
1636 vf = &pf->vf[v]; in i40e_reset_all_vfs()
1637 if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) { in i40e_reset_all_vfs()
1638 reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); in i40e_reset_all_vfs()
1658 pf->vf[v].vf_id); in i40e_reset_all_vfs()
1666 if (pf->vf[v].lan_vsi_idx == 0) in i40e_reset_all_vfs()
1670 if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) in i40e_reset_all_vfs()
1673 i40e_vsi_stop_rings_no_wait(pf->vsi[pf->vf[v].lan_vsi_idx]); in i40e_reset_all_vfs()
1681 if (pf->vf[v].lan_vsi_idx == 0) in i40e_reset_all_vfs()
1685 if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) in i40e_reset_all_vfs()
1688 i40e_vsi_wait_queues_disabled(pf->vsi[pf->vf[v].lan_vsi_idx]); in i40e_reset_all_vfs()
1699 if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) in i40e_reset_all_vfs()
1702 i40e_cleanup_reset_vf(&pf->vf[v]); in i40e_reset_all_vfs()
1724 if (!pf->vf) in i40e_free_vfs()
1744 if (test_bit(I40E_VF_STATE_INIT, &pf->vf[i].vf_states)) in i40e_free_vfs()
1747 i40e_vsi_stop_rings_no_wait(pf->vsi[pf->vf[i].lan_vsi_idx]); in i40e_free_vfs()
1751 if (test_bit(I40E_VF_STATE_INIT, &pf->vf[i].vf_states)) in i40e_free_vfs()
1754 i40e_vsi_wait_queues_disabled(pf->vsi[pf->vf[i].lan_vsi_idx]); in i40e_free_vfs()
1761 if (test_bit(I40E_VF_STATE_INIT, &pf->vf[i].vf_states)) in i40e_free_vfs()
1762 i40e_free_vf_res(&pf->vf[i]); in i40e_free_vfs()
1764 i40e_disable_vf_mappings(&pf->vf[i]); in i40e_free_vfs()
1767 kfree(pf->vf); in i40e_free_vfs()
1768 pf->vf = NULL; in i40e_free_vfs()
1819 pf->vf = vfs; in i40e_alloc_vfs()
1953 static int i40e_vc_send_msg_to_vf(struct i40e_vf *vf, u32 v_opcode, in i40e_vc_send_msg_to_vf() argument
1962 if (!vf || vf->vf_id >= vf->pf->num_alloc_vfs) in i40e_vc_send_msg_to_vf()
1965 pf = vf->pf; in i40e_vc_send_msg_to_vf()
1967 abs_vf_id = vf->vf_id + hw->func_caps.vf_base_id; in i40e_vc_send_msg_to_vf()
1974 vf->vf_id, pf->hw.aq.asq_last_status); in i40e_vc_send_msg_to_vf()
1989 static int i40e_vc_send_resp_to_vf(struct i40e_vf *vf, in i40e_vc_send_resp_to_vf() argument
1993 return i40e_vc_send_msg_to_vf(vf, opcode, retval, NULL, 0); in i40e_vc_send_resp_to_vf()
2004 static bool i40e_sync_vf_state(struct i40e_vf *vf, enum i40e_vf_states state) in i40e_sync_vf_state() argument
2014 if (test_bit(state, &vf->vf_states)) in i40e_sync_vf_state()
2019 return test_bit(state, &vf->vf_states); in i40e_sync_vf_state()
2029 static int i40e_vc_get_version_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_get_version_msg() argument
2035 vf->vf_ver = *(struct virtchnl_version_info *)msg; in i40e_vc_get_version_msg()
2037 if (VF_IS_V10(&vf->vf_ver)) in i40e_vc_get_version_msg()
2039 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_VERSION, in i40e_vc_get_version_msg()
2048 static void i40e_del_qch(struct i40e_vf *vf) in i40e_del_qch() argument
2050 struct i40e_pf *pf = vf->pf; in i40e_del_qch()
2056 for (i = 1; i < vf->num_tc; i++) { in i40e_del_qch()
2057 if (vf->ch[i].vsi_idx) { in i40e_del_qch()
2058 i40e_vsi_release(pf->vsi[vf->ch[i].vsi_idx]); in i40e_del_qch()
2059 vf->ch[i].vsi_idx = 0; in i40e_del_qch()
2060 vf->ch[i].vsi_id = 0; in i40e_del_qch()
2074 static u16 i40e_vc_get_max_frame_size(struct i40e_vf *vf) in i40e_vc_get_max_frame_size() argument
2076 u16 max_frame_size = vf->pf->hw.phy.link_info.max_frame_size; in i40e_vc_get_max_frame_size()
2078 if (vf->port_vlan_id) in i40e_vc_get_max_frame_size()
2091 static int i40e_vc_get_vf_resources_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_get_vf_resources_msg() argument
2094 struct i40e_pf *pf = vf->pf; in i40e_vc_get_vf_resources_msg()
2101 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_INIT)) { in i40e_vc_get_vf_resources_msg()
2113 if (VF_IS_V11(&vf->vf_ver)) in i40e_vc_get_vf_resources_msg()
2114 vf->driver_caps = *(u32 *)msg; in i40e_vc_get_vf_resources_msg()
2116 vf->driver_caps = VIRTCHNL_VF_OFFLOAD_L2 | in i40e_vc_get_vf_resources_msg()
2122 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_get_vf_resources_msg()
2126 if (i40e_vf_client_capable(pf, vf->vf_id) && in i40e_vc_get_vf_resources_msg()
2127 (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RDMA)) { in i40e_vc_get_vf_resources_msg()
2129 set_bit(I40E_VF_STATE_RDMAENA, &vf->vf_states); in i40e_vc_get_vf_resources_msg()
2131 clear_bit(I40E_VF_STATE_RDMAENA, &vf->vf_states); in i40e_vc_get_vf_resources_msg()
2134 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RSS_PF) { in i40e_vc_get_vf_resources_msg()
2138 (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RSS_AQ)) in i40e_vc_get_vf_resources_msg()
2145 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RSS_PCTYPE_V2) in i40e_vc_get_vf_resources_msg()
2150 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_ENCAP) in i40e_vc_get_vf_resources_msg()
2154 (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_ENCAP_CSUM)) in i40e_vc_get_vf_resources_msg()
2157 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_RX_POLLING) { in i40e_vc_get_vf_resources_msg()
2161 vf->vf_id); in i40e_vc_get_vf_resources_msg()
2169 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) in i40e_vc_get_vf_resources_msg()
2174 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_REQ_QUEUES) in i40e_vc_get_vf_resources_msg()
2177 if (vf->driver_caps & VIRTCHNL_VF_OFFLOAD_ADQ) in i40e_vc_get_vf_resources_msg()
2181 vfres->num_queue_pairs = vf->num_queue_pairs; in i40e_vc_get_vf_resources_msg()
2185 vfres->max_mtu = i40e_vc_get_max_frame_size(vf); in i40e_vc_get_vf_resources_msg()
2187 if (vf->lan_vsi_idx) { in i40e_vc_get_vf_resources_msg()
2188 vfres->vsi_res[0].vsi_id = vf->lan_vsi_id; in i40e_vc_get_vf_resources_msg()
2194 if (!(vf->driver_caps & VIRTCHNL_VF_OFFLOAD_USO) && !vf->pf_set_mac) { in i40e_vc_get_vf_resources_msg()
2195 i40e_del_mac_filter(vsi, vf->default_lan_addr.addr); in i40e_vc_get_vf_resources_msg()
2196 eth_zero_addr(vf->default_lan_addr.addr); in i40e_vc_get_vf_resources_msg()
2199 vf->default_lan_addr.addr); in i40e_vc_get_vf_resources_msg()
2201 set_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states); in i40e_vc_get_vf_resources_msg()
2205 ret = i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_GET_VF_RESOURCES, in i40e_vc_get_vf_resources_msg()
2220 static int i40e_vc_config_promiscuous_mode_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_config_promiscuous_mode_msg() argument
2224 struct i40e_pf *pf = vf->pf; in i40e_vc_config_promiscuous_mode_msg()
2229 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_config_promiscuous_mode_msg()
2233 if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps)) { in i40e_vc_config_promiscuous_mode_msg()
2236 vf->vf_id); in i40e_vc_config_promiscuous_mode_msg()
2250 if (!i40e_vc_isvalid_vsi_id(vf, info->vsi_id)) { in i40e_vc_config_promiscuous_mode_msg()
2261 aq_ret = i40e_config_vf_promiscuous_mode(vf, info->vsi_id, allmulti, in i40e_vc_config_promiscuous_mode_msg()
2268 &vf->vf_states)) in i40e_vc_config_promiscuous_mode_msg()
2271 vf->vf_id); in i40e_vc_config_promiscuous_mode_msg()
2273 &vf->vf_states)) in i40e_vc_config_promiscuous_mode_msg()
2276 vf->vf_id); in i40e_vc_config_promiscuous_mode_msg()
2280 &vf->vf_states)) in i40e_vc_config_promiscuous_mode_msg()
2283 vf->vf_id); in i40e_vc_config_promiscuous_mode_msg()
2285 &vf->vf_states)) in i40e_vc_config_promiscuous_mode_msg()
2288 vf->vf_id); in i40e_vc_config_promiscuous_mode_msg()
2292 return i40e_vc_send_resp_to_vf(vf, in i40e_vc_config_promiscuous_mode_msg()
2305 static int i40e_vc_config_queues_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_config_queues_msg() argument
2311 struct i40e_pf *pf = vf->pf; in i40e_vc_config_queues_msg()
2317 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_config_queues_msg()
2322 if (!i40e_vc_isvalid_vsi_id(vf, qci->vsi_id)) { in i40e_vc_config_queues_msg()
2332 if (vf->adq_enabled) { in i40e_vc_config_queues_msg()
2333 for (i = 0; i < vf->num_tc; i++) in i40e_vc_config_queues_msg()
2334 num_qps_all += vf->ch[i].num_qps; in i40e_vc_config_queues_msg()
2346 if (!vf->adq_enabled) { in i40e_vc_config_queues_msg()
2347 if (!i40e_vc_isvalid_queue_id(vf, vsi_id, in i40e_vc_config_queues_msg()
2363 if (vf->adq_enabled) { in i40e_vc_config_queues_msg()
2364 if (idx >= ARRAY_SIZE(vf->ch)) { in i40e_vc_config_queues_msg()
2368 vsi_id = vf->ch[idx].vsi_id; in i40e_vc_config_queues_msg()
2371 if (i40e_config_vsi_rx_queue(vf, vsi_id, vsi_queue_id, in i40e_vc_config_queues_msg()
2373 i40e_config_vsi_tx_queue(vf, vsi_id, vsi_queue_id, in i40e_vc_config_queues_msg()
2384 if (vf->adq_enabled) { in i40e_vc_config_queues_msg()
2385 if (idx >= ARRAY_SIZE(vf->ch)) { in i40e_vc_config_queues_msg()
2389 if (j == (vf->ch[idx].num_qps - 1)) { in i40e_vc_config_queues_msg()
2400 if (!vf->adq_enabled) { in i40e_vc_config_queues_msg()
2401 pf->vsi[vf->lan_vsi_idx]->num_queue_pairs = in i40e_vc_config_queues_msg()
2404 for (i = 0; i < vf->num_tc; i++) { in i40e_vc_config_queues_msg()
2405 vsi = pf->vsi[vf->ch[i].vsi_idx]; in i40e_vc_config_queues_msg()
2406 vsi->num_queue_pairs = vf->ch[i].num_qps; in i40e_vc_config_queues_msg()
2417 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_CONFIG_VSI_QUEUES, in i40e_vc_config_queues_msg()
2429 static int i40e_validate_queue_map(struct i40e_vf *vf, u16 vsi_id, in i40e_validate_queue_map() argument
2435 if (vf->adq_enabled) { in i40e_validate_queue_map()
2436 vsi_id = vf->ch[vsi_queue_id / I40E_MAX_VF_VSI].vsi_id; in i40e_validate_queue_map()
2442 if (!i40e_vc_isvalid_queue_id(vf, vsi_id, queue_id)) in i40e_validate_queue_map()
2457 static int i40e_vc_config_irq_map_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_config_irq_map_msg() argument
2466 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_config_irq_map_msg()
2472 vf->pf->hw.func_caps.num_msix_vectors_vf) { in i40e_vc_config_irq_map_msg()
2480 if (!i40e_vc_isvalid_vector_id(vf, map->vector_id) || in i40e_vc_config_irq_map_msg()
2481 !i40e_vc_isvalid_vsi_id(vf, map->vsi_id)) { in i40e_vc_config_irq_map_msg()
2487 if (i40e_validate_queue_map(vf, vsi_id, map->rxq_map)) { in i40e_vc_config_irq_map_msg()
2492 if (i40e_validate_queue_map(vf, vsi_id, map->txq_map)) { in i40e_vc_config_irq_map_msg()
2497 i40e_config_irq_link_list(vf, vsi_id, map); in i40e_vc_config_irq_map_msg()
2501 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_CONFIG_IRQ_MAP, in i40e_vc_config_irq_map_msg()
2573 static int i40e_vc_enable_queues_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_enable_queues_msg() argument
2577 struct i40e_pf *pf = vf->pf; in i40e_vc_enable_queues_msg()
2581 if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states)) { in i40e_vc_enable_queues_msg()
2586 if (!i40e_vc_isvalid_vsi_id(vf, vqs->vsi_id)) { in i40e_vc_enable_queues_msg()
2597 if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues, in i40e_vc_enable_queues_msg()
2602 if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues, in i40e_vc_enable_queues_msg()
2609 if (vf->adq_enabled) { in i40e_vc_enable_queues_msg()
2611 for (i = 1; i < vf->num_tc; i++) { in i40e_vc_enable_queues_msg()
2612 if (i40e_vsi_start_rings(pf->vsi[vf->ch[i].vsi_idx])) in i40e_vc_enable_queues_msg()
2619 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_QUEUES, in i40e_vc_enable_queues_msg()
2631 static int i40e_vc_disable_queues_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_disable_queues_msg() argument
2635 struct i40e_pf *pf = vf->pf; in i40e_vc_disable_queues_msg()
2638 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_disable_queues_msg()
2643 if (!i40e_vc_isvalid_vsi_id(vf, vqs->vsi_id)) { in i40e_vc_disable_queues_msg()
2654 if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues, in i40e_vc_disable_queues_msg()
2659 if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues, in i40e_vc_disable_queues_msg()
2666 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_QUEUES, in i40e_vc_disable_queues_msg()
2677 static int i40e_check_enough_queue(struct i40e_vf *vf, u16 needed) in i40e_check_enough_queue() argument
2681 struct i40e_pf *pf = vf->pf; in i40e_check_enough_queue()
2684 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_check_enough_queue()
2733 static int i40e_vc_request_queues_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_request_queues_msg() argument
2738 u8 cur_pairs = vf->num_queue_pairs; in i40e_vc_request_queues_msg()
2739 struct i40e_pf *pf = vf->pf; in i40e_vc_request_queues_msg()
2741 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) in i40e_vc_request_queues_msg()
2747 vf->vf_id, in i40e_vc_request_queues_msg()
2753 vf->vf_id, in i40e_vc_request_queues_msg()
2757 } else if (i40e_check_enough_queue(vf, req_pairs) < 0) { in i40e_vc_request_queues_msg()
2760 vf->vf_id, in i40e_vc_request_queues_msg()
2765 vf->num_req_queues = req_pairs; in i40e_vc_request_queues_msg()
2766 i40e_vc_reset_vf(vf, true); in i40e_vc_request_queues_msg()
2770 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_REQUEST_QUEUES, 0, in i40e_vc_request_queues_msg()
2781 static int i40e_vc_get_stats_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_get_stats_msg() argument
2785 struct i40e_pf *pf = vf->pf; in i40e_vc_get_stats_msg()
2792 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_get_stats_msg()
2797 if (!i40e_vc_isvalid_vsi_id(vf, vqs->vsi_id)) { in i40e_vc_get_stats_msg()
2802 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_get_stats_msg()
2812 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_GET_STATS, aq_ret, in i40e_vc_get_stats_msg()
2848 static inline int i40e_check_vf_permission(struct i40e_vf *vf, in i40e_check_vf_permission() argument
2851 struct i40e_pf *pf = vf->pf; in i40e_check_vf_permission()
2852 struct i40e_vsi *vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_check_vf_permission()
2875 if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps) && in i40e_check_vf_permission()
2876 !is_multicast_ether_addr(addr) && vf->pf_set_mac && in i40e_check_vf_permission()
2877 !ether_addr_equal(addr, vf->default_lan_addr.addr)) { in i40e_check_vf_permission()
2893 if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps)) { in i40e_check_vf_permission()
2924 static int i40e_vc_add_mac_addr_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_add_mac_addr_msg() argument
2928 struct i40e_pf *pf = vf->pf; in i40e_vc_add_mac_addr_msg()
2933 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE) || in i40e_vc_add_mac_addr_msg()
2934 !i40e_vc_isvalid_vsi_id(vf, al->vsi_id)) { in i40e_vc_add_mac_addr_msg()
2939 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_add_mac_addr_msg()
2946 ret = i40e_check_vf_permission(vf, al); in i40e_vc_add_mac_addr_msg()
2963 al->list[i].addr, vf->vf_id); in i40e_vc_add_mac_addr_msg()
2969 is_zero_ether_addr(vf->default_lan_addr.addr)) in i40e_vc_add_mac_addr_msg()
2970 ether_addr_copy(vf->default_lan_addr.addr, in i40e_vc_add_mac_addr_msg()
2980 vf->vf_id, ret); in i40e_vc_add_mac_addr_msg()
2984 return i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_ETH_ADDR, in i40e_vc_add_mac_addr_msg()
2995 static int i40e_vc_del_mac_addr_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_del_mac_addr_msg() argument
3000 struct i40e_pf *pf = vf->pf; in i40e_vc_del_mac_addr_msg()
3005 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE) || in i40e_vc_del_mac_addr_msg()
3006 !i40e_vc_isvalid_vsi_id(vf, al->vsi_id)) { in i40e_vc_del_mac_addr_msg()
3015 al->list[i].addr, vf->vf_id); in i40e_vc_del_mac_addr_msg()
3019 if (ether_addr_equal(al->list[i].addr, vf->default_lan_addr.addr)) in i40e_vc_del_mac_addr_msg()
3022 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_del_mac_addr_msg()
3039 vf->vf_id, ret); in i40e_vc_del_mac_addr_msg()
3041 if (vf->trusted && was_unimac_deleted) { in i40e_vc_del_mac_addr_msg()
3054 ether_addr_copy(vf->default_lan_addr.addr, macaddr); in i40e_vc_del_mac_addr_msg()
3059 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DEL_ETH_ADDR, ret); in i40e_vc_del_mac_addr_msg()
3069 static int i40e_vc_add_vlan_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_add_vlan_msg() argument
3073 struct i40e_pf *pf = vf->pf; in i40e_vc_add_vlan_msg()
3078 if ((vf->num_vlan >= I40E_VC_MAX_VLAN_PER_VF) && in i40e_vc_add_vlan_msg()
3079 !test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps)) { in i40e_vc_add_vlan_msg()
3084 if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states) || in i40e_vc_add_vlan_msg()
3085 !i40e_vc_isvalid_vsi_id(vf, vfl->vsi_id)) { in i40e_vc_add_vlan_msg()
3098 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_add_vlan_msg()
3109 vf->num_vlan++; in i40e_vc_add_vlan_msg()
3111 if (test_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states)) in i40e_vc_add_vlan_msg()
3116 if (test_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states)) in i40e_vc_add_vlan_msg()
3125 vfl->vlan_id[i], vf->vf_id, ret); in i40e_vc_add_vlan_msg()
3130 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ADD_VLAN, aq_ret); in i40e_vc_add_vlan_msg()
3140 static int i40e_vc_remove_vlan_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_remove_vlan_msg() argument
3144 struct i40e_pf *pf = vf->pf; in i40e_vc_remove_vlan_msg()
3149 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE) || in i40e_vc_remove_vlan_msg()
3150 !i40e_vc_isvalid_vsi_id(vf, vfl->vsi_id)) { in i40e_vc_remove_vlan_msg()
3162 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_remove_vlan_msg()
3171 vf->num_vlan--; in i40e_vc_remove_vlan_msg()
3173 if (test_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states)) in i40e_vc_remove_vlan_msg()
3178 if (test_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states)) in i40e_vc_remove_vlan_msg()
3187 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DEL_VLAN, aq_ret); in i40e_vc_remove_vlan_msg()
3198 static int i40e_vc_rdma_msg(struct i40e_vf *vf, u8 *msg, u16 msglen) in i40e_vc_rdma_msg() argument
3200 struct i40e_pf *pf = vf->pf; in i40e_vc_rdma_msg()
3201 int abs_vf_id = vf->vf_id + pf->hw.func_caps.vf_base_id; in i40e_vc_rdma_msg()
3204 if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states) || in i40e_vc_rdma_msg()
3205 !test_bit(I40E_VF_STATE_RDMAENA, &vf->vf_states)) { in i40e_vc_rdma_msg()
3215 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_RDMA, in i40e_vc_rdma_msg()
3227 static int i40e_vc_rdma_qvmap_msg(struct i40e_vf *vf, u8 *msg, bool config) in i40e_vc_rdma_qvmap_msg() argument
3233 if (!test_bit(I40E_VF_STATE_ACTIVE, &vf->vf_states) || in i40e_vc_rdma_qvmap_msg()
3234 !test_bit(I40E_VF_STATE_RDMAENA, &vf->vf_states)) { in i40e_vc_rdma_qvmap_msg()
3240 if (i40e_config_rdma_qvlist(vf, qvlist_info)) in i40e_vc_rdma_qvmap_msg()
3243 i40e_release_rdma_qvlist(vf); in i40e_vc_rdma_qvmap_msg()
3248 return i40e_vc_send_resp_to_vf(vf, in i40e_vc_rdma_qvmap_msg()
3261 static int i40e_vc_config_rss_key(struct i40e_vf *vf, u8 *msg) in i40e_vc_config_rss_key() argument
3265 struct i40e_pf *pf = vf->pf; in i40e_vc_config_rss_key()
3269 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE) || in i40e_vc_config_rss_key()
3270 !i40e_vc_isvalid_vsi_id(vf, vrk->vsi_id) || in i40e_vc_config_rss_key()
3276 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_config_rss_key()
3280 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_CONFIG_RSS_KEY, in i40e_vc_config_rss_key()
3291 static int i40e_vc_config_rss_lut(struct i40e_vf *vf, u8 *msg) in i40e_vc_config_rss_lut() argument
3295 struct i40e_pf *pf = vf->pf; in i40e_vc_config_rss_lut()
3300 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE) || in i40e_vc_config_rss_lut()
3301 !i40e_vc_isvalid_vsi_id(vf, vrl->vsi_id) || in i40e_vc_config_rss_lut()
3308 if (vrl->lut[i] >= vf->num_queue_pairs) { in i40e_vc_config_rss_lut()
3313 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_vc_config_rss_lut()
3317 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_CONFIG_RSS_LUT, in i40e_vc_config_rss_lut()
3328 static int i40e_vc_get_rss_hena(struct i40e_vf *vf, u8 *msg) in i40e_vc_get_rss_hena() argument
3331 struct i40e_pf *pf = vf->pf; in i40e_vc_get_rss_hena()
3335 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_get_rss_hena()
3350 aq_ret = i40e_vc_send_msg_to_vf(vf, VIRTCHNL_OP_GET_RSS_HENA_CAPS, in i40e_vc_get_rss_hena()
3363 static int i40e_vc_set_rss_hena(struct i40e_vf *vf, u8 *msg) in i40e_vc_set_rss_hena() argument
3367 struct i40e_pf *pf = vf->pf; in i40e_vc_set_rss_hena()
3371 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_set_rss_hena()
3375 i40e_write_rx_ctl(hw, I40E_VFQF_HENA1(0, vf->vf_id), (u32)vrh->hena); in i40e_vc_set_rss_hena()
3376 i40e_write_rx_ctl(hw, I40E_VFQF_HENA1(1, vf->vf_id), in i40e_vc_set_rss_hena()
3381 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_SET_RSS_HENA, aq_ret); in i40e_vc_set_rss_hena()
3391 static int i40e_vc_enable_vlan_stripping(struct i40e_vf *vf, u8 *msg) in i40e_vc_enable_vlan_stripping() argument
3396 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_enable_vlan_stripping()
3401 vsi = vf->pf->vsi[vf->lan_vsi_idx]; in i40e_vc_enable_vlan_stripping()
3406 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_VLAN_STRIPPING, in i40e_vc_enable_vlan_stripping()
3417 static int i40e_vc_disable_vlan_stripping(struct i40e_vf *vf, u8 *msg) in i40e_vc_disable_vlan_stripping() argument
3422 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_disable_vlan_stripping()
3427 vsi = vf->pf->vsi[vf->lan_vsi_idx]; in i40e_vc_disable_vlan_stripping()
3432 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_VLAN_STRIPPING, in i40e_vc_disable_vlan_stripping()
3443 static int i40e_validate_cloud_filter(struct i40e_vf *vf, in i40e_validate_cloud_filter() argument
3448 struct i40e_pf *pf = vf->pf; in i40e_validate_cloud_filter()
3458 vf->vf_id); in i40e_validate_cloud_filter()
3466 vf->vf_id, tc_filter->action_meta); in i40e_validate_cloud_filter()
3480 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_validate_cloud_filter()
3486 data.dst_mac, vf->vf_id); in i40e_validate_cloud_filter()
3501 vf->vf_id, ntohs(data.vlan_id)); in i40e_validate_cloud_filter()
3507 if (!test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps)) { in i40e_validate_cloud_filter()
3510 vf->vf_id); in i40e_validate_cloud_filter()
3519 vf->vf_id, data.dst_mac); in i40e_validate_cloud_filter()
3528 vf->vf_id, data.src_mac); in i40e_validate_cloud_filter()
3536 vf->vf_id); in i40e_validate_cloud_filter()
3544 vf->vf_id); in i40e_validate_cloud_filter()
3552 vf->vf_id); in i40e_validate_cloud_filter()
3559 vf->vf_id); in i40e_validate_cloud_filter()
3574 static struct i40e_vsi *i40e_find_vsi_from_seid(struct i40e_vf *vf, u16 seid) in i40e_find_vsi_from_seid() argument
3576 struct i40e_pf *pf = vf->pf; in i40e_find_vsi_from_seid()
3580 for (i = 0; i < vf->num_tc ; i++) { in i40e_find_vsi_from_seid()
3581 vsi = i40e_find_vsi_from_id(pf, vf->ch[i].vsi_id); in i40e_find_vsi_from_seid()
3594 static void i40e_del_all_cloud_filters(struct i40e_vf *vf) in i40e_del_all_cloud_filters() argument
3597 struct i40e_pf *pf = vf->pf; in i40e_del_all_cloud_filters()
3603 &vf->cloud_filter_list, cloud_node) { in i40e_del_all_cloud_filters()
3604 vsi = i40e_find_vsi_from_seid(vf, cfilter->seid); in i40e_del_all_cloud_filters()
3608 vf->vf_id, cfilter->seid); in i40e_del_all_cloud_filters()
3620 vf->vf_id, ERR_PTR(ret), in i40e_del_all_cloud_filters()
3626 vf->num_cloud_filters--; in i40e_del_all_cloud_filters()
3637 static int i40e_vc_del_cloud_filter(struct i40e_vf *vf, u8 *msg) in i40e_vc_del_cloud_filter() argument
3643 struct i40e_pf *pf = vf->pf; in i40e_vc_del_cloud_filter()
3649 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_del_cloud_filter()
3654 if (!vf->adq_enabled) { in i40e_vc_del_cloud_filter()
3657 vf->vf_id); in i40e_vc_del_cloud_filter()
3662 if (i40e_validate_cloud_filter(vf, vcf)) { in i40e_vc_del_cloud_filter()
3665 vf->vf_id); in i40e_vc_del_cloud_filter()
3707 vf->vf_id); in i40e_vc_del_cloud_filter()
3711 vsi = pf->vsi[vf->ch[vcf->action_meta].vsi_idx]; in i40e_vc_del_cloud_filter()
3723 vf->vf_id, ERR_PTR(ret), in i40e_vc_del_cloud_filter()
3729 &vf->cloud_filter_list, cloud_node) { in i40e_vc_del_cloud_filter()
3754 vf->num_cloud_filters--; in i40e_vc_del_cloud_filter()
3758 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DEL_CLOUD_FILTER, in i40e_vc_del_cloud_filter()
3769 static int i40e_vc_add_cloud_filter(struct i40e_vf *vf, u8 *msg) in i40e_vc_add_cloud_filter() argument
3775 struct i40e_pf *pf = vf->pf; in i40e_vc_add_cloud_filter()
3780 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_add_cloud_filter()
3785 if (!vf->adq_enabled) { in i40e_vc_add_cloud_filter()
3788 vf->vf_id); in i40e_vc_add_cloud_filter()
3793 if (i40e_validate_cloud_filter(vf, vcf)) { in i40e_vc_add_cloud_filter()
3796 vf->vf_id); in i40e_vc_add_cloud_filter()
3841 vf->vf_id); in i40e_vc_add_cloud_filter()
3845 vsi = pf->vsi[vf->ch[vcf->action_meta].vsi_idx]; in i40e_vc_add_cloud_filter()
3857 vf->vf_id, ERR_PTR(ret), in i40e_vc_add_cloud_filter()
3863 hlist_add_head(&cfilter->cloud_node, &vf->cloud_filter_list); in i40e_vc_add_cloud_filter()
3866 vf->num_cloud_filters++; in i40e_vc_add_cloud_filter()
3870 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ADD_CLOUD_FILTER, in i40e_vc_add_cloud_filter()
3879 static int i40e_vc_add_qch_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_add_qch_msg() argument
3883 struct i40e_pf *pf = vf->pf; in i40e_vc_add_qch_msg()
3889 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_add_qch_msg()
3895 if (vf->spoofchk) { in i40e_vc_add_qch_msg()
3902 if (!(vf->driver_caps & VIRTCHNL_VF_OFFLOAD_ADQ)) { in i40e_vc_add_qch_msg()
3905 vf->vf_id); in i40e_vc_add_qch_msg()
3914 vf->vf_id, tci->num_tc, I40E_MAX_VF_VSI); in i40e_vc_add_qch_msg()
3925 vf->vf_id, i, tci->list[i].count, in i40e_vc_add_qch_msg()
3937 vf->vf_id); in i40e_vc_add_qch_msg()
3945 vf->num_queue_pairs = I40E_MAX_VF_QUEUES; in i40e_vc_add_qch_msg()
3958 vf->num_tc = tci->num_tc; in i40e_vc_add_qch_msg()
3959 for (i = 0; i < vf->num_tc; i++) { in i40e_vc_add_qch_msg()
3965 vf->vf_id); in i40e_vc_add_qch_msg()
3969 vf->ch[i].max_tx_rate = in i40e_vc_add_qch_msg()
3973 vf->ch[i].num_qps = tci->list[i].count; in i40e_vc_add_qch_msg()
3977 vf->adq_enabled = true; in i40e_vc_add_qch_msg()
3980 i40e_vc_reset_vf(vf, true); in i40e_vc_add_qch_msg()
3986 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_ENABLE_CHANNELS, in i40e_vc_add_qch_msg()
3995 static int i40e_vc_del_qch_msg(struct i40e_vf *vf, u8 *msg) in i40e_vc_del_qch_msg() argument
3997 struct i40e_pf *pf = vf->pf; in i40e_vc_del_qch_msg()
4000 if (!i40e_sync_vf_state(vf, I40E_VF_STATE_ACTIVE)) { in i40e_vc_del_qch_msg()
4005 if (vf->adq_enabled) { in i40e_vc_del_qch_msg()
4006 i40e_del_all_cloud_filters(vf); in i40e_vc_del_qch_msg()
4007 i40e_del_qch(vf); in i40e_vc_del_qch_msg()
4008 vf->adq_enabled = false; in i40e_vc_del_qch_msg()
4009 vf->num_tc = 0; in i40e_vc_del_qch_msg()
4012 vf->vf_id); in i40e_vc_del_qch_msg()
4015 vf->vf_id); in i40e_vc_del_qch_msg()
4020 i40e_vc_reset_vf(vf, true); in i40e_vc_del_qch_msg()
4025 return i40e_vc_send_resp_to_vf(vf, VIRTCHNL_OP_DISABLE_CHANNELS, in i40e_vc_del_qch_msg()
4046 struct i40e_vf *vf; in i40e_vc_process_vf_msg() local
4052 vf = &(pf->vf[local_vf_id]); in i40e_vc_process_vf_msg()
4055 if (test_bit(I40E_VF_STATE_DISABLED, &vf->vf_states)) in i40e_vc_process_vf_msg()
4059 ret = virtchnl_vc_validate_vf_msg(&vf->vf_ver, v_opcode, msg, msglen); in i40e_vc_process_vf_msg()
4062 i40e_vc_send_resp_to_vf(vf, v_opcode, I40E_ERR_PARAM); in i40e_vc_process_vf_msg()
4075 ret = i40e_vc_get_version_msg(vf, msg); in i40e_vc_process_vf_msg()
4078 ret = i40e_vc_get_vf_resources_msg(vf, msg); in i40e_vc_process_vf_msg()
4079 i40e_vc_notify_vf_link_state(vf); in i40e_vc_process_vf_msg()
4082 i40e_vc_reset_vf(vf, false); in i40e_vc_process_vf_msg()
4086 ret = i40e_vc_config_promiscuous_mode_msg(vf, msg); in i40e_vc_process_vf_msg()
4089 ret = i40e_vc_config_queues_msg(vf, msg); in i40e_vc_process_vf_msg()
4092 ret = i40e_vc_config_irq_map_msg(vf, msg); in i40e_vc_process_vf_msg()
4095 ret = i40e_vc_enable_queues_msg(vf, msg); in i40e_vc_process_vf_msg()
4096 i40e_vc_notify_vf_link_state(vf); in i40e_vc_process_vf_msg()
4099 ret = i40e_vc_disable_queues_msg(vf, msg); in i40e_vc_process_vf_msg()
4102 ret = i40e_vc_add_mac_addr_msg(vf, msg); in i40e_vc_process_vf_msg()
4105 ret = i40e_vc_del_mac_addr_msg(vf, msg); in i40e_vc_process_vf_msg()
4108 ret = i40e_vc_add_vlan_msg(vf, msg); in i40e_vc_process_vf_msg()
4111 ret = i40e_vc_remove_vlan_msg(vf, msg); in i40e_vc_process_vf_msg()
4114 ret = i40e_vc_get_stats_msg(vf, msg); in i40e_vc_process_vf_msg()
4117 ret = i40e_vc_rdma_msg(vf, msg, msglen); in i40e_vc_process_vf_msg()
4120 ret = i40e_vc_rdma_qvmap_msg(vf, msg, true); in i40e_vc_process_vf_msg()
4123 ret = i40e_vc_rdma_qvmap_msg(vf, msg, false); in i40e_vc_process_vf_msg()
4126 ret = i40e_vc_config_rss_key(vf, msg); in i40e_vc_process_vf_msg()
4129 ret = i40e_vc_config_rss_lut(vf, msg); in i40e_vc_process_vf_msg()
4132 ret = i40e_vc_get_rss_hena(vf, msg); in i40e_vc_process_vf_msg()
4135 ret = i40e_vc_set_rss_hena(vf, msg); in i40e_vc_process_vf_msg()
4138 ret = i40e_vc_enable_vlan_stripping(vf, msg); in i40e_vc_process_vf_msg()
4141 ret = i40e_vc_disable_vlan_stripping(vf, msg); in i40e_vc_process_vf_msg()
4144 ret = i40e_vc_request_queues_msg(vf, msg); in i40e_vc_process_vf_msg()
4147 ret = i40e_vc_add_qch_msg(vf, msg); in i40e_vc_process_vf_msg()
4150 ret = i40e_vc_del_qch_msg(vf, msg); in i40e_vc_process_vf_msg()
4153 ret = i40e_vc_add_cloud_filter(vf, msg); in i40e_vc_process_vf_msg()
4156 ret = i40e_vc_del_cloud_filter(vf, msg); in i40e_vc_process_vf_msg()
4162 ret = i40e_vc_send_resp_to_vf(vf, v_opcode, in i40e_vc_process_vf_msg()
4181 struct i40e_vf *vf; in i40e_vc_process_vflr_event() local
4202 vf = &pf->vf[vf_id]; in i40e_vc_process_vflr_event()
4206 i40e_reset_vf(vf, true); in i40e_vc_process_vflr_event()
4224 struct i40e_vf *vf; in i40e_validate_vf() local
4233 vf = &pf->vf[vf_id]; in i40e_validate_vf()
4234 vsi = i40e_find_vsi_from_id(pf, vf->lan_vsi_id); in i40e_validate_vf()
4255 struct i40e_vf *vf; in i40e_ndo_set_vf_mac() local
4271 vf = &pf->vf[vf_id]; in i40e_ndo_set_vf_mac()
4280 if (test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) in i40e_ndo_set_vf_mac()
4284 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) { in i40e_ndo_set_vf_mac()
4290 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_ndo_set_vf_mac()
4305 if (!is_zero_ether_addr(vf->default_lan_addr.addr)) in i40e_ndo_set_vf_mac()
4306 i40e_del_mac_filter(vsi, vf->default_lan_addr.addr); in i40e_ndo_set_vf_mac()
4322 ether_addr_copy(vf->default_lan_addr.addr, mac); in i40e_ndo_set_vf_mac()
4325 vf->pf_set_mac = false; in i40e_ndo_set_vf_mac()
4328 vf->pf_set_mac = true; in i40e_ndo_set_vf_mac()
4336 i40e_vc_reset_vf(vf, true); in i40e_ndo_set_vf_mac()
4362 struct i40e_vf *vf; in i40e_ndo_set_vf_port_vlan() local
4387 vf = &pf->vf[vf_id]; in i40e_ndo_set_vf_port_vlan()
4388 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_ndo_set_vf_port_vlan()
4389 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) { in i40e_ndo_set_vf_port_vlan()
4401 i40e_vc_reset_vf(vf, true); in i40e_ndo_set_vf_port_vlan()
4403 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_ndo_set_vf_port_vlan()
4437 ret = i40e_config_vf_promiscuous_mode(vf, vf->lan_vsi_id, in i40e_ndo_set_vf_port_vlan()
4470 if (test_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states)) in i40e_ndo_set_vf_port_vlan()
4473 if (test_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states)) in i40e_ndo_set_vf_port_vlan()
4487 vf->port_vlan_id = le16_to_cpu(vsi->info.pvid); in i40e_ndo_set_vf_port_vlan()
4489 ret = i40e_config_vf_promiscuous_mode(vf, vsi->id, allmulti, alluni); in i40e_ndo_set_vf_port_vlan()
4517 struct i40e_vf *vf; in i40e_ndo_set_vf_bw() local
4537 vf = &pf->vf[vf_id]; in i40e_ndo_set_vf_bw()
4538 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_ndo_set_vf_bw()
4539 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) { in i40e_ndo_set_vf_bw()
4550 vf->tx_rate = max_tx_rate; in i40e_ndo_set_vf_bw()
4570 struct i40e_vf *vf; in i40e_ndo_get_vf_config() local
4583 vf = &pf->vf[vf_id]; in i40e_ndo_get_vf_config()
4585 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_ndo_get_vf_config()
4591 ivi->vf = vf_id; in i40e_ndo_get_vf_config()
4593 ether_addr_copy(ivi->mac, vf->default_lan_addr.addr); in i40e_ndo_get_vf_config()
4595 ivi->max_tx_rate = vf->tx_rate; in i40e_ndo_get_vf_config()
4600 if (vf->link_forced == false) in i40e_ndo_get_vf_config()
4602 else if (vf->link_up == true) in i40e_ndo_get_vf_config()
4606 ivi->spoofchk = vf->spoofchk; in i40e_ndo_get_vf_config()
4607 ivi->trusted = vf->trusted; in i40e_ndo_get_vf_config()
4630 struct i40e_vf *vf; in i40e_ndo_set_vf_link_state() local
4646 vf = &pf->vf[vf_id]; in i40e_ndo_set_vf_link_state()
4647 abs_vf_id = vf->vf_id + hw->func_caps.vf_base_id; in i40e_ndo_set_vf_link_state()
4654 vf->link_forced = false; in i40e_ndo_set_vf_link_state()
4655 i40e_set_vf_link_state(vf, &pfe, ls); in i40e_ndo_set_vf_link_state()
4658 vf->link_forced = true; in i40e_ndo_set_vf_link_state()
4659 vf->link_up = true; in i40e_ndo_set_vf_link_state()
4660 i40e_set_vf_link_state(vf, &pfe, ls); in i40e_ndo_set_vf_link_state()
4663 vf->link_forced = true; in i40e_ndo_set_vf_link_state()
4664 vf->link_up = false; in i40e_ndo_set_vf_link_state()
4665 i40e_set_vf_link_state(vf, &pfe, ls); in i40e_ndo_set_vf_link_state()
4695 struct i40e_vf *vf; in i40e_ndo_set_vf_spoofchk() local
4710 vf = &(pf->vf[vf_id]); in i40e_ndo_set_vf_spoofchk()
4711 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) { in i40e_ndo_set_vf_spoofchk()
4718 if (enable == vf->spoofchk) in i40e_ndo_set_vf_spoofchk()
4721 vf->spoofchk = enable; in i40e_ndo_set_vf_spoofchk()
4723 ctxt.seid = pf->vsi[vf->lan_vsi_idx]->seid; in i40e_ndo_set_vf_spoofchk()
4752 struct i40e_vf *vf; in i40e_ndo_set_vf_trust() local
4773 vf = &pf->vf[vf_id]; in i40e_ndo_set_vf_trust()
4775 if (setting == vf->trusted) in i40e_ndo_set_vf_trust()
4778 vf->trusted = setting; in i40e_ndo_set_vf_trust()
4782 pf->vsi[vf->lan_vsi_idx]->flags |= I40E_VSI_FLAG_FILTER_CHANGED; in i40e_ndo_set_vf_trust()
4784 i40e_vc_reset_vf(vf, true); in i40e_ndo_set_vf_trust()
4788 if (vf->adq_enabled) { in i40e_ndo_set_vf_trust()
4789 if (!vf->trusted) { in i40e_ndo_set_vf_trust()
4793 i40e_del_all_cloud_filters(vf); in i40e_ndo_set_vf_trust()
4815 struct i40e_vf *vf; in i40e_get_vf_stats() local
4821 vf = &pf->vf[vf_id]; in i40e_get_vf_stats()
4822 if (!test_bit(I40E_VF_STATE_INIT, &vf->vf_states)) { in i40e_get_vf_stats()
4827 vsi = pf->vsi[vf->lan_vsi_idx]; in i40e_get_vf_stats()