diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2014-11-03 18:35:28 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2014-11-03 18:35:28 +0100 |
commit | 3ee3e5ad6e6eb06f13297dd67054325a9af6926a (patch) | |
tree | ceae7c499334df542ce92298c2babcf05128061d /kernel/net | |
parent | 5248f4d6cb90f27334bd75309f3976902e638280 (diff) |
Kernel API changes in em_ipset.c, support both old and new ones
Diffstat (limited to 'kernel/net')
-rw-r--r-- | kernel/net/sched/em_ipset.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/net/sched/em_ipset.c b/kernel/net/sched/em_ipset.c index 527aeb7..2729d7e 100644 --- a/kernel/net/sched/em_ipset.c +++ b/kernel/net/sched/em_ipset.c @@ -15,16 +15,24 @@ #include <linux/string.h> #include <linux/skbuff.h> #include <linux/netfilter/xt_set.h> +#include <linux/netfilter/ipset/ip_set_compat.h> #include <linux/ipv6.h> #include <net/ip.h> #include <net/pkt_cls.h> +#ifdef HAVE_TCF_EMATCH_OPS_CHANGE_ARG_NET +static int em_ipset_change(struct net *net, void *data, int data_len, + struct tcf_ematch *em) +#else static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len, struct tcf_ematch *em) +#endif { struct xt_set_info *set = data; ip_set_id_t index; +#ifndef HAVE_TCF_EMATCH_OPS_CHANGE_ARG_NET struct net *net = dev_net(qdisc_dev(tp->q)); +#endif if (data_len != sizeof(*set)) return -EINVAL; @@ -42,11 +50,19 @@ static int em_ipset_change(struct tcf_proto *tp, void *data, int data_len, return -ENOMEM; } +#ifdef HAVE_TCF_EMATCH_STRUCT_NET +static void em_ipset_destroy(struct tcf_ematch *em) +#else static void em_ipset_destroy(struct tcf_proto *p, struct tcf_ematch *em) +#endif { const struct xt_set_info *set = (const void *) em->data; if (set) { +#ifdef HAVE_TCF_EMATCH_STRUCT_NET + ip_set_nfnl_put(em->net, set->index); +#else ip_set_nfnl_put(dev_net(qdisc_dev(p->q)), set->index); +#endif kfree((void *) em->data); } } |