int     (*dump)(struct sk_buff *, struct meta_value *, int);
 };
 
-static struct meta_type_ops __meta_type_ops[TCF_META_TYPE_MAX + 1] = {
+static const struct meta_type_ops __meta_type_ops[TCF_META_TYPE_MAX + 1] = {
        [TCF_META_TYPE_VAR] = {
                .destroy = meta_var_destroy,
                .compare = meta_var_compare,
        }
 };
 
-static inline struct meta_type_ops *meta_type_ops(struct meta_value *v)
+static inline const struct meta_type_ops *meta_type_ops(struct meta_value *v)
 {
        return &__meta_type_ops[meta_type(v)];
 }
 static void meta_delete(struct meta_match *meta)
 {
        if (meta) {
-               struct meta_type_ops *ops = meta_type_ops(&meta->lvalue);
+               const struct meta_type_ops *ops = meta_type_ops(&meta->lvalue);
 
                if (ops && ops->destroy) {
                        ops->destroy(&meta->lvalue);
 {
        struct meta_match *meta = (struct meta_match *) em->data;
        struct tcf_meta_hdr hdr;
-       struct meta_type_ops *ops;
+       const struct meta_type_ops *ops;
 
        memset(&hdr, 0, sizeof(hdr));
        memcpy(&hdr.left, &meta->lvalue.hdr, sizeof(hdr.left));