[ovs-dev] [PATCH v2] datapath: Fix build errors for 4.9.172+ kernels
Yi-Hung Wei
yihung.wei at gmail.com
Fri May 24 17:58:58 UTC 2019
On Thu, May 23, 2019 at 4:58 PM Yifeng Sun <pkusunyifeng at gmail.com> wrote:
>
> 4.9.172+ kernel backported upstream patch 70b095c843266
> ("ipv6: remove dependency of nf_defrag_ipv6 on ipv6 module")
> and this caused compilation errors of OVS kernel module.
>
> This patch fixes it by checking and using new functions
> introduced by the upstream patch.
>
> Travis tests passed at
> https://travis-ci.org/yifsun/ovs-travis/builds/536527230
> with latest Linux kernel version.
>
> In addition, this patch doesn't introduce failed tests for latest kernels
> of Ubuntu (bionic, trusty, xenial), fedora, centos 73, rhel (74, 75, 76).
>
> Reported-by: Ilya Maximets <i.maximets at samsung.com>
> Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
> ---
> v1->v2: Fixed at bug that crashes certain kernels. Thanks YiHung!
>
> datapath/linux/compat/nf_conntrack_reasm.c | 23 ++++++++++++++++++++++-
> 1 file changed, 22 insertions(+), 1 deletion(-)
>
> diff --git a/datapath/linux/compat/nf_conntrack_reasm.c b/datapath/linux/compat/nf_conntrack_reasm.c
> index 9d77d982712c..23904eef08d7 100644
> --- a/datapath/linux/compat/nf_conntrack_reasm.c
> +++ b/datapath/linux/compat/nf_conntrack_reasm.c
> int rpl_nf_ct_frag6_init(void)
> {
> int ret = 0;
> @@ -683,10 +698,16 @@ int rpl_nf_ct_frag6_init(void)
> #ifdef HAVE_INET_FRAGS_RND
> nf_frags.hashfn = nf_hashfn;
> nf_frags.match = ip6_frag_match;
> + nf_frags.constructor = ip6_frag_init;
> +#else
> +#ifdef HAVE_IPV6_FRAG_H
> + nf_frags.rhash_params = nfct_rhash_params;
> + nf_frags.constructor = ip6frag_init;
> #else
> nf_frags.rhash_params = ip6_rhash_params;
> -#endif
> nf_frags.constructor = ip6_frag_init;
> +#endif
> +#endif
Hi Yifeng,
Thanks for the update. Are we replicating "nf_frags.constructor =
ip6_frag_init;" for the 3 cases?
How about the following change?
int rpl_nf_ct_frag6_init(void)
{
int ret = 0;
@@ -684,8 +699,12 @@ int rpl_nf_ct_frag6_init(void)
nf_frags.hashfn = nf_hashfn;
nf_frags.match = ip6_frag_match;
#else
+#ifdef HAVE_IPV6_FRAG_H
+ nf_frags.rhash_params = nfct_rhash_params;
+#else
nf_frags.rhash_params = ip6_rhash_params;
#endif
+#endif /* HAVE_INET_FRAGS_RND */
nf_frags.constructor = ip6_frag_init;
-Yi-Hung
> nf_frags.destructor = NULL;
> nf_frags.qsize = sizeof(struct frag_queue);
> nf_frags.frag_expire = nf_ct_frag6_expire;
> --
> 2.7.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
More information about the dev
mailing list