Lines Matching refs:fnew
1868 struct cls_fl_filter *fnew,
1881 fnew->mask = rhashtable_lookup_get_insert_fast(&head->ht,
1884 if (!fnew->mask) {
1898 fnew->mask = newmask;
1900 } else if (IS_ERR(fnew->mask)) {
1901 ret = PTR_ERR(fnew->mask);
1902 } else if (fold && fold->mask != fnew->mask) {
1904 } else if (!refcount_inc_not_zero(&fnew->mask->refcnt)) {
1955 static int fl_ht_insert_unique(struct cls_fl_filter *fnew,
1959 struct fl_flow_mask *mask = fnew->mask;
1963 &fnew->ht_node,
1985 struct cls_fl_filter *fnew;
2018 fnew = kzalloc(sizeof(*fnew), GFP_KERNEL);
2019 if (!fnew) {
2023 INIT_LIST_HEAD(&fnew->hw_list);
2024 refcount_set(&fnew->refcnt, 1);
2026 err = tcf_exts_init(&fnew->exts, net, TCA_FLOWER_ACT, 0);
2031 fnew->flags = nla_get_u32(tb[TCA_FLOWER_FLAGS]);
2033 if (!tc_flags_valid(fnew->flags)) {
2039 err = fl_set_parms(net, tp, fnew, mask, base, tb, tca[TCA_RATE], ovr,
2044 err = fl_check_assign_mask(head, fnew, fold, mask);
2048 err = fl_ht_insert_unique(fnew, fold, &in_ht);
2052 if (!tc_skip_hw(fnew->flags)) {
2053 err = fl_hw_replace_filter(tp, fnew, rtnl_held, extack);
2058 if (!tc_in_hw(fnew->flags))
2059 fnew->flags |= TCA_CLS_FLAGS_NOT_IN_HW;
2078 fnew->handle = handle;
2082 fnew->mask->filter_ht_params;
2084 err = rhashtable_insert_fast(&fnew->mask->ht,
2085 &fnew->ht_node,
2092 refcount_inc(&fnew->refcnt);
2096 idr_replace(&head->handle_idr, fnew, fnew->handle);
2097 list_replace_rcu(&fold->list, &fnew->list);
2114 err = idr_alloc_u32(&head->handle_idr, fnew, &handle,
2127 err = idr_alloc_u32(&head->handle_idr, fnew, &handle,
2133 refcount_inc(&fnew->refcnt);
2134 fnew->handle = handle;
2135 list_add_tail_rcu(&fnew->list, &fnew->mask->filters);
2139 *arg = fnew;
2148 fnew->deleted = true;
2150 if (!tc_skip_hw(fnew->flags))
2151 fl_hw_destroy_filter(tp, fnew, rtnl_held, NULL);
2153 rhashtable_remove_fast(&fnew->mask->ht, &fnew->ht_node,
2154 fnew->mask->filter_ht_params);
2156 fl_mask_put(head, fnew->mask);
2158 __fl_put(fnew);