Lines Matching refs:perfect
49 struct tcindex_filter_result *perfect; /* perfect hash; NULL if none */ member
74 kfree(p->perfect); in tcindex_data_put()
83 if (p->perfect) { in tcindex_lookup()
84 struct tcindex_filter_result *f = p->perfect + key; in tcindex_lookup()
137 if (p->perfect && handle >= p->alloc_hash) in tcindex_get()
207 if (p->perfect) { in tcindex_delete()
291 if (p->perfect) in tcindex_partial_destroy_work()
302 tcf_exts_destroy(&cp->perfect[i].exts); in tcindex_free_perfect_hash()
303 kfree(cp->perfect); in tcindex_free_perfect_hash()
310 cp->perfect = kcalloc(cp->hash, sizeof(struct tcindex_filter_result), in tcindex_alloc_perfect_hash()
312 if (!cp->perfect) in tcindex_alloc_perfect_hash()
316 err = tcf_exts_init(&cp->perfect[i].exts, net, in tcindex_alloc_perfect_hash()
320 cp->perfect[i].p = cp; in tcindex_alloc_perfect_hash()
391 if (p->perfect) { in tcindex_set_parms()
398 cp->perfect[i].res = p->perfect[i].res; in tcindex_set_parms()
414 if (cp->perfect) { in tcindex_set_parms()
426 if (!cp->perfect && !cp->h) in tcindex_set_parms()
434 if (cp->perfect || valid_perfect_hash(cp)) in tcindex_set_parms()
440 if (!cp->perfect && !cp->h) { in tcindex_set_parms()
460 if (cp->perfect) { in tcindex_set_parms()
461 r = cp->perfect + handle; in tcindex_set_parms()
591 if (p->perfect) { in tcindex_walk()
593 if (!p->perfect[i].res.class) in tcindex_walk()
596 if (walker->fn(tp, p->perfect + i, walker) < 0) { in tcindex_walk()
628 if (p->perfect) { in tcindex_destroy()
630 struct tcindex_filter_result *r = p->perfect + i; in tcindex_destroy()
672 pr_debug("p->perfect %p p->h %p\n", p->perfect, p->h); in tcindex_dump()
687 if (p->perfect) { in tcindex_dump()
688 t->tcm_handle = r - p->perfect; in tcindex_dump()