From: Greg Rose <gvrose8...@gmail.com> Upstream commit: commit d91fc59cd77c719f33eda65c194ad8f95a055190 Author: Liping Zhang <zlpnob...@gmail.com> Date: Sun May 7 22:01:55 2017 +0800
netfilter: introduce nf_conntrack_helper_put helper function And convert module_put invocation to nf_conntrack_helper_put, this is prepared for the followup patch, which will add a refcnt for cthelper, so we can reject the deleting request when cthelper is in use. Signed-off-by: Liping Zhang <zlpnob...@gmail.com> Signed-off-by: Pablo Neira Ayuso <pa...@netfilter.org> Applied with additional use of HAVE_NF_CONNTRACK_HELPER_PUT compatibility flag defined in acinclude.m4. Signed-off-by: Greg Rose <gvrose8...@gmail.com> Signed-off-by: Joe Stringer <j...@ovn.org> --- v2: Shift compat symbol definitions to patch which uses it. Add nf_conntrack_helper.h compat header to define the new function. --- acinclude.m4 | 2 ++ datapath/conntrack.c | 4 ++-- datapath/linux/Modules.mk | 1 + .../linux/compat/include/net/netfilter/nf_conntrack_helper.h | 12 ++++++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 datapath/linux/compat/include/net/netfilter/nf_conntrack_helper.h diff --git a/acinclude.m4 b/acinclude.m4 index e7affc514811..62a91e650a4a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -748,6 +748,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ [OVS_DEFINE([HAVE_DEFRAG_ENABLE_TAKES_NET])]) OVS_GREP_IFELSE([$KSRC/include/net/genetlink.h], [family_list], [OVS_DEFINE([HAVE_GENL_FAMILY_LIST])]) + OVS_GREP_IFELSE([$KSRC/include/net/netfilter/nf_conntrack_helper.h], + [nf_conntrack_helper_put]) if cmp -s datapath/linux/kcompat.h.new \ datapath/linux/kcompat.h >/dev/null 2>&1; then diff --git a/datapath/conntrack.c b/datapath/conntrack.c index bf28fc071929..01f54bf048c6 100644 --- a/datapath/conntrack.c +++ b/datapath/conntrack.c @@ -1164,7 +1164,7 @@ static int ovs_ct_add_helper(struct ovs_conntrack_info *info, const char *name, help = nf_ct_helper_ext_add(info->ct, helper, GFP_KERNEL); if (!help) { - module_put(helper->me); + nf_conntrack_helper_put(helper); return -ENOMEM; } @@ -1634,7 +1634,7 @@ void ovs_ct_free_action(const struct nlattr *a) static void __ovs_ct_free_action(struct ovs_conntrack_info *ct_info) { if (ct_info->helper) - module_put(ct_info->helper->me); + nf_conntrack_helper_put(ct_info->helper); if (ct_info->ct) nf_ct_tmpl_free(ct_info->ct); } diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk index 985ffed4557a..eec9f2338d98 100644 --- a/datapath/linux/Modules.mk +++ b/datapath/linux/Modules.mk @@ -95,6 +95,7 @@ openvswitch_headers += \ linux/compat/include/net/netfilter/nf_conntrack.h \ linux/compat/include/net/netfilter/nf_conntrack_core.h \ linux/compat/include/net/netfilter/nf_conntrack_expect.h \ + linux/compat/include/net/netfilter/nf_conntrack_helper.h \ linux/compat/include/net/netfilter/nf_conntrack_labels.h \ linux/compat/include/net/netfilter/nf_conntrack_seqadj.h \ linux/compat/include/net/netfilter/nf_conntrack_zones.h \ diff --git a/datapath/linux/compat/include/net/netfilter/nf_conntrack_helper.h b/datapath/linux/compat/include/net/netfilter/nf_conntrack_helper.h new file mode 100644 index 000000000000..19c35cd95f6f --- /dev/null +++ b/datapath/linux/compat/include/net/netfilter/nf_conntrack_helper.h @@ -0,0 +1,12 @@ +#ifndef _NF_CONNTRACK_HELPER_WRAPPER_H +#define _NF_CONNTRACK_HELPER_WRAPPER_H + +#include_next <net/netfilter/nf_conntrack_helper.h> + +#ifndef HAVE_NF_CONNTRACK_HELPER_PUT +static inline void nf_conntrack_helper_put(struct nf_conntrack_helper *helper) { + module_put(helper->me); +} +#endif + +#endif /* _NF_CONNTRACK_HELPER_WRAPPER_H */ -- 2.11.1 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev