Lines Matching refs:sfi
547 struct enetc_psfp_filter *sfi, in enetc_streamfilter_hw_set() argument
558 cbd.index = cpu_to_le16(sfi->index); in enetc_streamfilter_hw_set()
569 if (sfi->handle >= 0) { in enetc_streamfilter_hw_set()
571 cpu_to_le32(sfi->handle); in enetc_streamfilter_hw_set()
575 sfi_config->sg_inst_table_index = cpu_to_le16(sfi->gate_id); in enetc_streamfilter_hw_set()
581 if (sfi->prio >= 0) in enetc_streamfilter_hw_set()
582 sfi_config->multi |= (sfi->prio & 0x7) | 0x8; in enetc_streamfilter_hw_set()
588 if (sfi->maxsdu) { in enetc_streamfilter_hw_set()
590 cpu_to_le16(sfi->maxsdu); in enetc_streamfilter_hw_set()
594 if (sfi->meter_id >= 0) { in enetc_streamfilter_hw_set()
595 sfi_config->fm_inst_table_index = cpu_to_le16(sfi->meter_id); in enetc_streamfilter_hw_set()
889 *enetc_psfp_check_sfi(struct enetc_psfp_filter *sfi) in enetc_psfp_check_sfi() argument
894 if (s->gate_id == sfi->gate_id && in enetc_psfp_check_sfi()
895 s->prio == sfi->prio && in enetc_psfp_check_sfi()
896 s->maxsdu == sfi->maxsdu && in enetc_psfp_check_sfi()
897 s->meter_id == sfi->meter_id) in enetc_psfp_check_sfi()
917 struct enetc_psfp_filter *sfi; in stream_filter_unref() local
920 sfi = enetc_get_filter_by_index(index); in stream_filter_unref()
921 WARN_ON(!sfi); in stream_filter_unref()
922 z = refcount_dec_and_test(&sfi->refcount); in stream_filter_unref()
925 enetc_streamfilter_hw_set(priv, sfi, false); in stream_filter_unref()
926 hlist_del(&sfi->node); in stream_filter_unref()
927 kfree(sfi); in stream_filter_unref()
977 struct enetc_psfp_filter *sfi, in enetc_psfp_hw_set() argument
987 if (sfi) { in enetc_psfp_hw_set()
988 err = enetc_streamfilter_hw_set(priv, sfi, true); in enetc_psfp_hw_set()
1008 if (sfi) in enetc_psfp_hw_set()
1009 enetc_streamfilter_hw_set(priv, sfi, false); in enetc_psfp_hw_set()
1076 struct enetc_psfp_filter *sfi, *old_sfi; in enetc_psfp_parse_clsflower() local
1212 sfi = kzalloc(sizeof(*sfi), GFP_KERNEL); in enetc_psfp_parse_clsflower()
1213 if (!sfi) { in enetc_psfp_parse_clsflower()
1218 refcount_set(&sfi->refcount, 1); in enetc_psfp_parse_clsflower()
1219 sfi->gate_id = sgi->index; in enetc_psfp_parse_clsflower()
1220 sfi->meter_id = ENETC_PSFP_WILDCARD; in enetc_psfp_parse_clsflower()
1240 sfi->meter_id = fmi->index; in enetc_psfp_parse_clsflower()
1244 sfi->maxsdu = entryp->police.mtu; in enetc_psfp_parse_clsflower()
1249 sfi->prio = f->common.prio - 1; in enetc_psfp_parse_clsflower()
1251 sfi->prio = ENETC_PSFP_WILDCARD; in enetc_psfp_parse_clsflower()
1253 old_sfi = enetc_psfp_check_sfi(sfi); in enetc_psfp_parse_clsflower()
1258 if (sfi->handle < 0) { in enetc_psfp_parse_clsflower()
1264 sfi->index = index; in enetc_psfp_parse_clsflower()
1265 sfi->handle = index + HANDLE_OFFSET; in enetc_psfp_parse_clsflower()
1267 filter->sid.handle = sfi->handle; in enetc_psfp_parse_clsflower()
1268 filter->sfi_index = sfi->index; in enetc_psfp_parse_clsflower()
1277 sfi_overwrite ? NULL : sfi, sgi, fmi); in enetc_psfp_parse_clsflower()
1306 hlist_add_head(&sfi->node, &epsfp.psfp_filter_list); in enetc_psfp_parse_clsflower()
1307 set_bit(sfi->index, epsfp.psfp_sfi_bitmap); in enetc_psfp_parse_clsflower()
1309 kfree(sfi); in enetc_psfp_parse_clsflower()
1327 kfree(sfi); in enetc_psfp_parse_clsflower()
1476 struct enetc_psfp_filter *sfi; in clean_sfi_list() local
1479 hlist_for_each_entry_safe(sfi, tmp, &epsfp.psfp_filter_list, node) { in clean_sfi_list()
1480 hlist_del(&sfi->node); in clean_sfi_list()
1481 kfree(sfi); in clean_sfi_list()