Lines Matching refs:perfect
48 struct tcindex_filter_result *perfect; /* perfect hash; NULL if none */ member
73 kfree(p->perfect); in tcindex_data_put()
82 if (p->perfect) { in tcindex_lookup()
83 struct tcindex_filter_result *f = p->perfect + key; in tcindex_lookup()
136 if (p->perfect && handle >= p->alloc_hash) in tcindex_get()
206 if (p->perfect) { in tcindex_delete()
288 kfree(p->perfect); in tcindex_partial_destroy_work()
298 tcf_exts_destroy(&cp->perfect[i].exts); in tcindex_free_perfect_hash()
299 kfree(cp->perfect); in tcindex_free_perfect_hash()
306 cp->perfect = kcalloc(cp->hash, sizeof(struct tcindex_filter_result), in tcindex_alloc_perfect_hash()
308 if (!cp->perfect) in tcindex_alloc_perfect_hash()
312 err = tcf_exts_init(&cp->perfect[i].exts, net, in tcindex_alloc_perfect_hash()
316 cp->perfect[i].p = cp; in tcindex_alloc_perfect_hash()
382 if (p->perfect) { in tcindex_set_parms()
389 cp->perfect[i].res = p->perfect[i].res; in tcindex_set_parms()
405 if (cp->perfect) { in tcindex_set_parms()
417 if (!cp->perfect && !cp->h) in tcindex_set_parms()
425 if (cp->perfect || valid_perfect_hash(cp)) in tcindex_set_parms()
431 if (!cp->perfect && !cp->h) { in tcindex_set_parms()
451 if (cp->perfect) in tcindex_set_parms()
452 r = cp->perfect + handle; in tcindex_set_parms()
558 if (p->perfect) { in tcindex_walk()
560 if (!p->perfect[i].res.class) in tcindex_walk()
563 if (walker->fn(tp, p->perfect + i, walker) < 0) { in tcindex_walk()
595 if (p->perfect) { in tcindex_destroy()
597 struct tcindex_filter_result *r = p->perfect + i; in tcindex_destroy()
639 pr_debug("p->perfect %p p->h %p\n", p->perfect, p->h); in tcindex_dump()
654 if (p->perfect) { in tcindex_dump()
655 t->tcm_handle = r - p->perfect; in tcindex_dump()