Lines Matching refs:em

175 			   struct tcf_ematch *em, struct nlattr *nla, int idx)  in tcf_em_validate()  argument
206 em->data = ref; in tcf_em_validate()
216 em->ops = tcf_em_lookup(em_hdr->kind); in tcf_em_validate()
218 if (em->ops == NULL) { in tcf_em_validate()
224 em->ops = tcf_em_lookup(em_hdr->kind); in tcf_em_validate()
225 if (em->ops) { in tcf_em_validate()
230 module_put(em->ops->owner); in tcf_em_validate()
231 em->ops = NULL; in tcf_em_validate()
241 if (em->ops->datalen && data_len < em->ops->datalen) in tcf_em_validate()
244 if (em->ops->change) { in tcf_em_validate()
245 err = em->ops->change(net, data, data_len, em); in tcf_em_validate()
261 em->data = *(u32 *) data; in tcf_em_validate()
268 em->data = (unsigned long) v; in tcf_em_validate()
273 em->matchid = em_hdr->matchid; in tcf_em_validate()
274 em->flags = em_hdr->flags; in tcf_em_validate()
275 em->datalen = data_len; in tcf_em_validate()
276 em->net = net; in tcf_em_validate()
311 struct tcf_ematch *em; in tcf_em_tree_validate() local
333 matches_len = tree_hdr->nmatches * sizeof(*em); in tcf_em_tree_validate()
360 em = tcf_em_get_match(tree, idx); in tcf_em_tree_validate()
362 err = tcf_em_validate(tp, tree_hdr, em, rt_match, idx); in tcf_em_tree_validate()
407 struct tcf_ematch *em = tcf_em_get_match(tree, i); in tcf_em_tree_destroy() local
409 if (em->ops) { in tcf_em_tree_destroy()
410 if (em->ops->destroy) in tcf_em_tree_destroy()
411 em->ops->destroy(em); in tcf_em_tree_destroy()
412 else if (!tcf_em_is_simple(em)) in tcf_em_tree_destroy()
413 kfree((void *) em->data); in tcf_em_tree_destroy()
414 module_put(em->ops->owner); in tcf_em_tree_destroy()
457 struct tcf_ematch *em = tcf_em_get_match(tree, i); in tcf_em_tree_dump() local
459 .kind = em->ops ? em->ops->kind : TCF_EM_CONTAINER, in tcf_em_tree_dump()
460 .matchid = em->matchid, in tcf_em_tree_dump()
461 .flags = em->flags in tcf_em_tree_dump()
467 if (em->ops && em->ops->dump) { in tcf_em_tree_dump()
468 if (em->ops->dump(skb, em) < 0) in tcf_em_tree_dump()
470 } else if (tcf_em_is_container(em) || tcf_em_is_simple(em)) { in tcf_em_tree_dump()
471 u32 u = em->data; in tcf_em_tree_dump()
473 } else if (em->datalen > 0) in tcf_em_tree_dump()
474 nla_put_nohdr(skb, em->datalen, (void *) em->data); in tcf_em_tree_dump()
490 static inline int tcf_em_match(struct sk_buff *skb, struct tcf_ematch *em, in tcf_em_match() argument
493 int r = em->ops->match(skb, em, info); in tcf_em_match()
495 return tcf_em_is_inverted(em) ? !r : r; in tcf_em_match()