Lines Matching refs:em

171 			   struct tcf_ematch *em, struct nlattr *nla, int idx)
202 em->data = ref;
212 em->ops = tcf_em_lookup(em_hdr->kind);
214 if (em->ops == NULL) {
220 em->ops = tcf_em_lookup(em_hdr->kind);
221 if (em->ops) {
226 module_put(em->ops->owner);
227 em->ops = NULL;
237 if (em->ops->datalen && data_len < em->ops->datalen)
240 if (em->ops->change) {
244 err = em->ops->change(net, data, data_len, em);
258 if (em->ops->datalen > 0)
262 em->data = *(u32 *) data;
269 em->data = (unsigned long) v;
271 em->datalen = data_len;
275 em->matchid = em_hdr->matchid;
276 em->flags = em_hdr->flags;
277 em->net = net;
312 struct tcf_ematch *em;
335 matches_len = tree_hdr->nmatches * sizeof(*em);
362 em = tcf_em_get_match(tree, idx);
364 err = tcf_em_validate(tp, tree_hdr, em, rt_match, idx);
408 struct tcf_ematch *em = tcf_em_get_match(tree, i);
410 if (em->ops) {
411 if (em->ops->destroy)
412 em->ops->destroy(em);
413 else if (!tcf_em_is_simple(em))
414 kfree((void *) em->data);
415 module_put(em->ops->owner);
458 struct tcf_ematch *em = tcf_em_get_match(tree, i);
460 .kind = em->ops ? em->ops->kind : TCF_EM_CONTAINER,
461 .matchid = em->matchid,
462 .flags = em->flags
468 if (em->ops && em->ops->dump) {
469 if (em->ops->dump(skb, em) < 0)
471 } else if (tcf_em_is_container(em) || tcf_em_is_simple(em)) {
472 u32 u = em->data;
474 } else if (em->datalen > 0)
475 nla_put_nohdr(skb, em->datalen, (void *) em->data);
491 static inline int tcf_em_match(struct sk_buff *skb, struct tcf_ematch *em,
494 int r = em->ops->match(skb, em, info);
496 return tcf_em_is_inverted(em) ? !r : r;