Lines Matching refs:meta
803 struct meta_match *meta = (struct meta_match *) m->data; in em_meta_match() local
806 if (meta_get(skb, info, &meta->lvalue, &l_value) < 0 || in em_meta_match()
807 meta_get(skb, info, &meta->rvalue, &r_value) < 0) in em_meta_match()
810 r = meta_type_ops(&meta->lvalue)->compare(&l_value, &r_value); in em_meta_match()
812 switch (meta->lvalue.hdr.op) { in em_meta_match()
824 static void meta_delete(struct meta_match *meta) in meta_delete() argument
826 if (meta) { in meta_delete()
827 struct meta_type_ops *ops = meta_type_ops(&meta->lvalue); in meta_delete()
830 ops->destroy(&meta->lvalue); in meta_delete()
831 ops->destroy(&meta->rvalue); in meta_delete()
835 kfree(meta); in meta_delete()
865 struct meta_match *meta = NULL; in em_meta_change() local
882 meta = kzalloc(sizeof(*meta), GFP_KERNEL); in em_meta_change()
883 if (meta == NULL) { in em_meta_change()
888 memcpy(&meta->lvalue.hdr, &hdr->left, sizeof(hdr->left)); in em_meta_change()
889 memcpy(&meta->rvalue.hdr, &hdr->right, sizeof(hdr->right)); in em_meta_change()
891 if (!meta_is_supported(&meta->lvalue) || in em_meta_change()
892 !meta_is_supported(&meta->rvalue)) { in em_meta_change()
897 if (meta_change_data(&meta->lvalue, tb[TCA_EM_META_LVALUE]) < 0 || in em_meta_change()
898 meta_change_data(&meta->rvalue, tb[TCA_EM_META_RVALUE]) < 0) in em_meta_change()
901 m->datalen = sizeof(*meta); in em_meta_change()
902 m->data = (unsigned long) meta; in em_meta_change()
906 if (err && meta) in em_meta_change()
907 meta_delete(meta); in em_meta_change()
919 struct meta_match *meta = (struct meta_match *) em->data; in em_meta_dump() local
924 memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left)); in em_meta_dump()
925 memcpy(&hdr.right, &meta->rvalue.hdr, sizeof(hdr.right)); in em_meta_dump()
930 ops = meta_type_ops(&meta->lvalue); in em_meta_dump()
931 if (ops->dump(skb, &meta->lvalue, TCA_EM_META_LVALUE) < 0 || in em_meta_dump()
932 ops->dump(skb, &meta->rvalue, TCA_EM_META_RVALUE) < 0) in em_meta_dump()