Lines Matching refs:cached_pattern

152 	struct mlx5dr_pattern_cache_item *cached_pattern;  in mlx5dr_pat_get_existing_cached_pattern()  local
154 cached_pattern = mlx5dr_pat_find_cached_pattern(cache, num_of_actions, actions); in mlx5dr_pat_get_existing_cached_pattern()
155 if (cached_pattern) { in mlx5dr_pat_get_existing_cached_pattern()
157 LIST_REMOVE(cached_pattern, next); in mlx5dr_pat_get_existing_cached_pattern()
158 LIST_INSERT_HEAD(&cache->head, cached_pattern, next); in mlx5dr_pat_get_existing_cached_pattern()
159 cached_pattern->refcount++; in mlx5dr_pat_get_existing_cached_pattern()
162 return cached_pattern; in mlx5dr_pat_get_existing_cached_pattern()
171 struct mlx5dr_pattern_cache_item *cached_pattern; in mlx5dr_pat_add_pattern_to_cache() local
173 cached_pattern = simple_calloc(1, sizeof(*cached_pattern)); in mlx5dr_pat_add_pattern_to_cache()
174 if (!cached_pattern) { in mlx5dr_pat_add_pattern_to_cache()
180 cached_pattern->mh_data.num_of_actions = num_of_actions; in mlx5dr_pat_add_pattern_to_cache()
181 cached_pattern->mh_data.pattern_obj = pattern_obj; in mlx5dr_pat_add_pattern_to_cache()
182 cached_pattern->mh_data.data = in mlx5dr_pat_add_pattern_to_cache()
184 if (!cached_pattern->mh_data.data) { in mlx5dr_pat_add_pattern_to_cache()
190 memcpy(cached_pattern->mh_data.data, actions, in mlx5dr_pat_add_pattern_to_cache()
193 LIST_INSERT_HEAD(&cache->head, cached_pattern, next); in mlx5dr_pat_add_pattern_to_cache()
194 cached_pattern->refcount = 1; in mlx5dr_pat_add_pattern_to_cache()
196 return cached_pattern; in mlx5dr_pat_add_pattern_to_cache()
199 simple_free(cached_pattern); in mlx5dr_pat_add_pattern_to_cache()
207 struct mlx5dr_pattern_cache_item *cached_pattern; in mlx5dr_pat_find_cached_pattern_by_obj() local
209 LIST_FOREACH(cached_pattern, &cache->head, next) { in mlx5dr_pat_find_cached_pattern_by_obj()
210 if (cached_pattern->mh_data.pattern_obj->id == pat_obj->id) in mlx5dr_pat_find_cached_pattern_by_obj()
211 return cached_pattern; in mlx5dr_pat_find_cached_pattern_by_obj()
218 mlx5dr_pat_remove_pattern(struct mlx5dr_pattern_cache_item *cached_pattern) in mlx5dr_pat_remove_pattern() argument
220 LIST_REMOVE(cached_pattern, next); in mlx5dr_pat_remove_pattern()
221 simple_free(cached_pattern->mh_data.data); in mlx5dr_pat_remove_pattern()
222 simple_free(cached_pattern); in mlx5dr_pat_remove_pattern()
229 struct mlx5dr_pattern_cache_item *cached_pattern; in mlx5dr_pat_put_pattern() local
232 cached_pattern = mlx5dr_pat_find_cached_pattern_by_obj(cache, pat_obj); in mlx5dr_pat_put_pattern()
233 if (!cached_pattern) { in mlx5dr_pat_put_pattern()
239 if (--cached_pattern->refcount) in mlx5dr_pat_put_pattern()
242 mlx5dr_pat_remove_pattern(cached_pattern); in mlx5dr_pat_put_pattern()
254 struct mlx5dr_pattern_cache_item *cached_pattern; in mlx5dr_pat_get_pattern() local
259 cached_pattern = mlx5dr_pat_get_existing_cached_pattern(ctx->pattern_cache, in mlx5dr_pat_get_pattern()
262 if (cached_pattern) { in mlx5dr_pat_get_pattern()
263 pat_obj = cached_pattern->mh_data.pattern_obj; in mlx5dr_pat_get_pattern()
275 cached_pattern = mlx5dr_pat_add_pattern_to_cache(ctx->pattern_cache, in mlx5dr_pat_get_pattern()
279 if (!cached_pattern) { in mlx5dr_pat_get_pattern()