Lines Matching refs:vf
287 ice_vc_fdir_param_check(struct ice_vf *vf, u16 vsi_id) in ice_vc_fdir_param_check() argument
289 struct ice_pf *pf = vf->pf; in ice_vc_fdir_param_check()
294 if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) in ice_vc_fdir_param_check()
297 if (!(vf->driver_caps & VIRTCHNL_VF_OFFLOAD_FDIR_PF)) in ice_vc_fdir_param_check()
300 if (vsi_id != vf->lan_vsi_num) in ice_vc_fdir_param_check()
303 if (!ice_vc_isvalid_vsi_id(vf, vsi_id)) in ice_vc_fdir_param_check()
306 if (!pf->vsi[vf->lan_vsi_idx]) in ice_vc_fdir_param_check()
320 static int ice_vf_start_ctrl_vsi(struct ice_vf *vf) in ice_vf_start_ctrl_vsi() argument
322 struct ice_pf *pf = vf->pf; in ice_vf_start_ctrl_vsi()
328 if (vf->ctrl_vsi_idx != ICE_NO_VSI) in ice_vf_start_ctrl_vsi()
331 ctrl_vsi = ice_vf_ctrl_vsi_setup(vf); in ice_vf_start_ctrl_vsi()
334 vf->vf_id); in ice_vf_start_ctrl_vsi()
341 vf->vf_id); in ice_vf_start_ctrl_vsi()
349 if (vf->ctrl_vsi_idx != ICE_NO_VSI) { in ice_vf_start_ctrl_vsi()
350 pf->vsi[vf->ctrl_vsi_idx] = NULL; in ice_vf_start_ctrl_vsi()
351 vf->ctrl_vsi_idx = ICE_NO_VSI; in ice_vf_start_ctrl_vsi()
364 ice_vc_fdir_alloc_prof(struct ice_vf *vf, enum ice_fltr_ptype flow) in ice_vc_fdir_alloc_prof() argument
366 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_alloc_prof()
369 fdir->fdir_prof = devm_kcalloc(ice_pf_to_dev(vf->pf), in ice_vc_fdir_alloc_prof()
378 fdir->fdir_prof[flow] = devm_kzalloc(ice_pf_to_dev(vf->pf), in ice_vc_fdir_alloc_prof()
394 ice_vc_fdir_free_prof(struct ice_vf *vf, enum ice_fltr_ptype flow) in ice_vc_fdir_free_prof() argument
396 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_free_prof()
404 devm_kfree(ice_pf_to_dev(vf->pf), fdir->fdir_prof[flow]); in ice_vc_fdir_free_prof()
412 static void ice_vc_fdir_free_prof_all(struct ice_vf *vf) in ice_vc_fdir_free_prof_all() argument
414 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_free_prof_all()
421 ice_vc_fdir_free_prof(vf, flow); in ice_vc_fdir_free_prof_all()
423 devm_kfree(ice_pf_to_dev(vf->pf), fdir->fdir_prof); in ice_vc_fdir_free_prof_all()
480 ice_vc_fdir_set_flow_fld(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_set_flow_fld() argument
486 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_flow_fld()
502 dev_dbg(dev, "Empty input set for VF %d\n", vf->vf_id); in ice_vc_fdir_set_flow_fld()
524 ice_vc_fdir_set_flow_hdr(struct ice_vf *vf, in ice_vc_fdir_set_flow_hdr() argument
530 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_flow_hdr()
595 flow, vf->vf_id); in ice_vc_fdir_set_flow_hdr()
655 flow, vf->vf_id); in ice_vc_fdir_set_flow_hdr()
669 ice_vc_fdir_rem_prof(struct ice_vf *vf, enum ice_fltr_ptype flow, int tun) in ice_vc_fdir_rem_prof() argument
671 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_rem_prof()
673 struct ice_pf *pf = vf->pf; in ice_vc_fdir_rem_prof()
687 vf_vsi = pf->vsi[vf->lan_vsi_idx]; in ice_vc_fdir_rem_prof()
689 dev_dbg(dev, "NULL vf %d vsi pointer\n", vf->vf_id); in ice_vc_fdir_rem_prof()
723 static void ice_vc_fdir_rem_prof_all(struct ice_vf *vf) in ice_vc_fdir_rem_prof_all() argument
729 ice_vc_fdir_rem_prof(vf, flow, 0); in ice_vc_fdir_rem_prof_all()
730 ice_vc_fdir_rem_prof(vf, flow, 1); in ice_vc_fdir_rem_prof_all()
746 ice_vc_fdir_write_flow_prof(struct ice_vf *vf, enum ice_fltr_ptype flow, in ice_vc_fdir_write_flow_prof() argument
749 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vc_fdir_write_flow_prof()
763 pf = vf->pf; in ice_vc_fdir_write_flow_prof()
766 vf_vsi = pf->vsi[vf->lan_vsi_idx]; in ice_vc_fdir_write_flow_prof()
770 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_fdir_write_flow_prof()
779 vf->vf_id); in ice_vc_fdir_write_flow_prof()
786 vf->vf_id); in ice_vc_fdir_write_flow_prof()
791 ice_vc_fdir_rem_prof(vf, flow, tun); in ice_vc_fdir_write_flow_prof()
802 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
812 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
823 flow, vf->vf_id); in ice_vc_fdir_write_flow_prof()
865 ice_vc_fdir_config_input_set(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_config_input_set() argument
869 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_config_input_set()
875 ret = ice_vc_fdir_alloc_prof(vf, flow); in ice_vc_fdir_config_input_set()
877 dev_dbg(dev, "Alloc flow prof for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
885 ret = ice_vc_fdir_set_flow_fld(vf, fltr, conf, seg); in ice_vc_fdir_config_input_set()
887 dev_dbg(dev, "Set flow field for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
891 ret = ice_vc_fdir_set_flow_hdr(vf, conf, seg); in ice_vc_fdir_config_input_set()
893 dev_dbg(dev, "Set flow hdr for VF %d failed\n", vf->vf_id); in ice_vc_fdir_config_input_set()
897 ret = ice_vc_fdir_write_flow_prof(vf, flow, seg, tun); in ice_vc_fdir_config_input_set()
902 vf->vf_id); in ice_vc_fdir_config_input_set()
947 ice_vc_fdir_get_pattern(struct ice_vf *vf, int *len) in ice_vc_fdir_get_pattern() argument
950 struct ice_pf *pf = vf->pf; in ice_vc_fdir_get_pattern()
976 ice_vc_fdir_search_pattern(struct ice_vf *vf, struct virtchnl_fdir_add *fltr) in ice_vc_fdir_search_pattern() argument
981 pattern = ice_vc_fdir_get_pattern(vf, &len); in ice_vc_fdir_search_pattern()
1001 ice_vc_fdir_parse_pattern(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_parse_pattern() argument
1007 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_parse_pattern()
1013 proto->count, vf->vf_id); in ice_vc_fdir_parse_pattern()
1206 hdr->type, vf->vf_id); in ice_vc_fdir_parse_pattern()
1225 ice_vc_fdir_parse_action(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_fdir_parse_action() argument
1229 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_parse_action()
1237 as->count, vf->vf_id); in ice_vc_fdir_parse_action()
1271 action->type, vf->vf_id); in ice_vc_fdir_parse_action()
1278 vf->vf_id); in ice_vc_fdir_parse_action()
1283 dev_dbg(dev, "Too many mark actions for VF %d\n", vf->vf_id); in ice_vc_fdir_parse_action()
1299 ice_vc_validate_fdir_fltr(struct ice_vf *vf, struct virtchnl_fdir_add *fltr, in ice_vc_validate_fdir_fltr() argument
1304 ret = ice_vc_fdir_search_pattern(vf, fltr); in ice_vc_validate_fdir_fltr()
1308 ret = ice_vc_fdir_parse_pattern(vf, fltr, conf); in ice_vc_validate_fdir_fltr()
1312 return ice_vc_fdir_parse_action(vf, fltr, conf); in ice_vc_validate_fdir_fltr()
1363 ice_vc_fdir_is_dup_fltr(struct ice_vf *vf, struct virtchnl_fdir_fltr_conf *conf) in ice_vc_fdir_is_dup_fltr() argument
1368 list_for_each_entry(desc, &vf->fdir.fdir_rule_list, fltr_node) { in ice_vc_fdir_is_dup_fltr()
1391 ice_vc_fdir_insert_entry(struct ice_vf *vf, in ice_vc_fdir_insert_entry() argument
1398 i = idr_alloc(&vf->fdir.fdir_rule_idr, conf, 0, in ice_vc_fdir_insert_entry()
1404 list_add(&input->fltr_node, &vf->fdir.fdir_rule_list); in ice_vc_fdir_insert_entry()
1415 ice_vc_fdir_remove_entry(struct ice_vf *vf, in ice_vc_fdir_remove_entry() argument
1420 idr_remove(&vf->fdir.fdir_rule_idr, id); in ice_vc_fdir_remove_entry()
1432 ice_vc_fdir_lookup_entry(struct ice_vf *vf, u32 id) in ice_vc_fdir_lookup_entry() argument
1434 return idr_find(&vf->fdir.fdir_rule_idr, id); in ice_vc_fdir_lookup_entry()
1441 static void ice_vc_fdir_flush_entry(struct ice_vf *vf) in ice_vc_fdir_flush_entry() argument
1447 &vf->fdir.fdir_rule_list, fltr_node) { in ice_vc_fdir_flush_entry()
1450 devm_kfree(ice_pf_to_dev(vf->pf), conf); in ice_vc_fdir_flush_entry()
1463 static int ice_vc_fdir_write_fltr(struct ice_vf *vf, in ice_vc_fdir_write_fltr() argument
1477 pf = vf->pf; in ice_vc_fdir_write_fltr()
1480 vsi = pf->vsi[vf->lan_vsi_idx]; in ice_vc_fdir_write_fltr()
1482 dev_dbg(dev, "Invalid vsi for VF %d\n", vf->vf_id); in ice_vc_fdir_write_fltr()
1489 ctrl_vsi = pf->vsi[vf->ctrl_vsi_idx]; in ice_vc_fdir_write_fltr()
1491 dev_dbg(dev, "Invalid ctrl_vsi for VF %d\n", vf->vf_id); in ice_vc_fdir_write_fltr()
1504 vf->vf_id, input->flow_type); in ice_vc_fdir_write_fltr()
1529 struct ice_vf *vf; in ice_vf_fdir_timer() local
1533 vf = container_of(fdir, struct ice_vf, fdir); in ice_vf_fdir_timer()
1535 pf = vf->pf; in ice_vf_fdir_timer()
1570 struct ice_vf *vf; in ice_vc_fdir_irq_handler() local
1573 vf = &pf->vf[ctrl_vsi->vf_id]; in ice_vc_fdir_irq_handler()
1575 fdir = &vf->fdir; in ice_vc_fdir_irq_handler()
1597 dev_err(dev, "VF %d: Unexpected inactive timer!\n", vf->vf_id); in ice_vc_fdir_irq_handler()
1607 static void ice_vf_fdir_dump_info(struct ice_vf *vf) in ice_vf_fdir_dump_info() argument
1616 pf = vf->pf; in ice_vf_fdir_dump_info()
1619 vf_vsi = pf->vsi[vf->lan_vsi_idx]; in ice_vf_fdir_dump_info()
1625 vf->vf_id, in ice_vf_fdir_dump_info()
1641 ice_vf_verify_rx_desc(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vf_verify_rx_desc() argument
1644 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vf_verify_rx_desc()
1652 dev_err(dev, "VF %d: Desc Done not set\n", vf->vf_id); in ice_vf_verify_rx_desc()
1662 vf->vf_id); in ice_vf_verify_rx_desc()
1671 vf->vf_id); in ice_vf_verify_rx_desc()
1682 vf->vf_id); in ice_vf_verify_rx_desc()
1686 vf->vf_id); in ice_vf_verify_rx_desc()
1696 dev_err(dev, "VF %d: Profile matching error", vf->vf_id); in ice_vf_verify_rx_desc()
1707 ice_vf_fdir_dump_info(vf); in ice_vf_verify_rx_desc()
1725 ice_vc_add_fdir_fltr_post(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vc_add_fdir_fltr_post() argument
1730 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_add_fdir_fltr_post()
1741 dev_dbg(dev, "VF %d: Alloc resp buf fail", vf->vf_id); in ice_vc_add_fdir_fltr_post()
1751 vf->fdir.fdir_fltr_cnt[conf->input.flow_type][is_tun]++; in ice_vc_add_fdir_fltr_post()
1753 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_add_fdir_fltr_post()
1758 vf->vf_id, conf->flow_id, in ice_vc_add_fdir_fltr_post()
1766 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_add_fdir_fltr_post()
1769 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_add_fdir_fltr_post()
1789 ice_vc_del_fdir_fltr_post(struct ice_vf *vf, struct ice_vf_fdir_ctx *ctx, in ice_vc_del_fdir_fltr_post() argument
1794 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_del_fdir_fltr_post()
1805 dev_dbg(dev, "VF %d: Alloc resp buf fail", vf->vf_id); in ice_vc_del_fdir_fltr_post()
1814 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_del_fdir_fltr_post()
1815 vf->fdir.fdir_fltr_cnt[conf->input.flow_type][is_tun]--; in ice_vc_del_fdir_fltr_post()
1817 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_del_fdir_fltr_post()
1822 vf->vf_id, conf->flow_id, in ice_vc_del_fdir_fltr_post()
1834 ret = ice_vc_send_msg_to_vf(vf, ctx->v_opcode, v_ret, in ice_vc_del_fdir_fltr_post()
1856 struct ice_vf *vf = &pf->vf[i]; in ice_flush_fdir_ctx() local
1861 if (!test_bit(ICE_VF_STATE_ACTIVE, vf->vf_states)) in ice_flush_fdir_ctx()
1864 if (vf->ctrl_vsi_idx == ICE_NO_VSI) in ice_flush_fdir_ctx()
1867 ctx = &vf->fdir.ctx_done; in ice_flush_fdir_ctx()
1868 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1870 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1873 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1879 vf->vf_id); in ice_flush_fdir_ctx()
1883 ret = ice_vf_verify_rx_desc(vf, ctx, &status); in ice_flush_fdir_ctx()
1888 ice_vc_add_fdir_fltr_post(vf, ctx, status, true); in ice_flush_fdir_ctx()
1890 ice_vc_del_fdir_fltr_post(vf, ctx, status, true); in ice_flush_fdir_ctx()
1892 dev_err(dev, "VF %d: Unsupported opcode\n", vf->vf_id); in ice_flush_fdir_ctx()
1894 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1896 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1900 ice_vc_add_fdir_fltr_post(vf, ctx, status, false); in ice_flush_fdir_ctx()
1902 ice_vc_del_fdir_fltr_post(vf, ctx, status, false); in ice_flush_fdir_ctx()
1904 dev_err(dev, "VF %d: Unsupported opcode\n", vf->vf_id); in ice_flush_fdir_ctx()
1906 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1908 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_flush_fdir_ctx()
1921 ice_vc_fdir_set_irq_ctx(struct ice_vf *vf, struct virtchnl_fdir_fltr_conf *conf, in ice_vc_fdir_set_irq_ctx() argument
1924 struct device *dev = ice_pf_to_dev(vf->pf); in ice_vc_fdir_set_irq_ctx()
1928 ctx = &vf->fdir.ctx_irq; in ice_vc_fdir_set_irq_ctx()
1929 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1930 if ((vf->fdir.ctx_irq.flags & ICE_VF_FDIR_CTX_VALID) || in ice_vc_fdir_set_irq_ctx()
1931 (vf->fdir.ctx_done.flags & ICE_VF_FDIR_CTX_VALID)) { in ice_vc_fdir_set_irq_ctx()
1932 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1934 vf->vf_id); in ice_vc_fdir_set_irq_ctx()
1938 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_set_irq_ctx()
1956 static void ice_vc_fdir_clear_irq_ctx(struct ice_vf *vf) in ice_vc_fdir_clear_irq_ctx() argument
1958 struct ice_vf_fdir_ctx *ctx = &vf->fdir.ctx_irq; in ice_vc_fdir_clear_irq_ctx()
1962 spin_lock_irqsave(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_clear_irq_ctx()
1964 spin_unlock_irqrestore(&vf->fdir.ctx_lock, flags); in ice_vc_fdir_clear_irq_ctx()
1974 int ice_vc_add_fdir_fltr(struct ice_vf *vf, u8 *msg) in ice_vc_add_fdir_fltr() argument
1986 pf = vf->pf; in ice_vc_add_fdir_fltr()
1988 ret = ice_vc_fdir_param_check(vf, fltr->vsi_id); in ice_vc_add_fdir_fltr()
1991 dev_dbg(dev, "Parameter check for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
1995 ret = ice_vf_start_ctrl_vsi(vf); in ice_vc_add_fdir_fltr()
1999 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2006 dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2013 dev_dbg(dev, "Alloc conf for VF %d failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2018 ret = ice_vc_validate_fdir_fltr(vf, fltr, conf); in ice_vc_add_fdir_fltr()
2022 dev_dbg(dev, "Invalid FDIR filter from VF %d\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2030 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_FDIR_FILTER, in ice_vc_add_fdir_fltr()
2035 ret = ice_vc_fdir_config_input_set(vf, fltr, conf, is_tun); in ice_vc_add_fdir_fltr()
2040 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2044 ret = ice_vc_fdir_is_dup_fltr(vf, conf); in ice_vc_add_fdir_fltr()
2049 vf->vf_id); in ice_vc_add_fdir_fltr()
2053 ret = ice_vc_fdir_insert_entry(vf, conf, &conf->flow_id); in ice_vc_add_fdir_fltr()
2057 dev_dbg(dev, "VF %d: insert FDIR list failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2061 ret = ice_vc_fdir_set_irq_ctx(vf, conf, VIRTCHNL_OP_ADD_FDIR_FILTER); in ice_vc_add_fdir_fltr()
2065 dev_dbg(dev, "VF %d: set FDIR context failed\n", vf->vf_id); in ice_vc_add_fdir_fltr()
2069 ret = ice_vc_fdir_write_fltr(vf, conf, true, is_tun); in ice_vc_add_fdir_fltr()
2074 vf->vf_id, ret); in ice_vc_add_fdir_fltr()
2083 ice_vc_fdir_clear_irq_ctx(vf); in ice_vc_add_fdir_fltr()
2084 ice_vc_fdir_remove_entry(vf, conf, conf->flow_id); in ice_vc_add_fdir_fltr()
2088 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_ADD_FDIR_FILTER, v_ret, in ice_vc_add_fdir_fltr()
2101 int ice_vc_del_fdir_fltr(struct ice_vf *vf, u8 *msg) in ice_vc_del_fdir_fltr() argument
2113 pf = vf->pf; in ice_vc_del_fdir_fltr()
2115 ret = ice_vc_fdir_param_check(vf, fltr->vsi_id); in ice_vc_del_fdir_fltr()
2118 dev_dbg(dev, "Parameter check for VF %d failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2125 dev_dbg(dev, "Alloc stat for VF %d failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2131 conf = ice_vc_fdir_lookup_entry(vf, fltr->flow_id); in ice_vc_del_fdir_fltr()
2136 vf->vf_id, fltr->flow_id); in ice_vc_del_fdir_fltr()
2141 if (vf->ctrl_vsi_idx == ICE_NO_VSI) { in ice_vc_del_fdir_fltr()
2144 dev_err(dev, "Invalid FDIR ctrl_vsi for VF %d\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2148 ret = ice_vc_fdir_set_irq_ctx(vf, conf, VIRTCHNL_OP_DEL_FDIR_FILTER); in ice_vc_del_fdir_fltr()
2152 dev_dbg(dev, "VF %d: set FDIR context failed\n", vf->vf_id); in ice_vc_del_fdir_fltr()
2156 ret = ice_vc_fdir_write_fltr(vf, conf, false, is_tun); in ice_vc_del_fdir_fltr()
2161 vf->vf_id, ret); in ice_vc_del_fdir_fltr()
2170 ice_vc_fdir_clear_irq_ctx(vf); in ice_vc_del_fdir_fltr()
2172 ret = ice_vc_send_msg_to_vf(vf, VIRTCHNL_OP_DEL_FDIR_FILTER, v_ret, in ice_vc_del_fdir_fltr()
2182 void ice_vf_fdir_init(struct ice_vf *vf) in ice_vf_fdir_init() argument
2184 struct ice_vf_fdir *fdir = &vf->fdir; in ice_vf_fdir_init()
2198 void ice_vf_fdir_exit(struct ice_vf *vf) in ice_vf_fdir_exit() argument
2200 ice_vc_fdir_flush_entry(vf); in ice_vf_fdir_exit()
2201 idr_destroy(&vf->fdir.fdir_rule_idr); in ice_vf_fdir_exit()
2202 ice_vc_fdir_rem_prof_all(vf); in ice_vf_fdir_exit()
2203 ice_vc_fdir_free_prof_all(vf); in ice_vf_fdir_exit()