[ovs-dev] [PATCH] compat: Add compat fix for old kernels
Ben Pfaff
blp at ovn.org
Tue Nov 5 21:04:51 UTC 2019
On Mon, Nov 04, 2019 at 10:11:05AM +0200, Roi Dayan wrote:
> In kernels older than 4.8, struct tcf_t didn't have the firstuse.
> If openvswitch is compiled with the compat pkt_cls.h then there is
> a struct size mismatch between openvswitch and the kernel which cause
> parsing netlink actions to fail.
> After this commit parsing the netlink actions pass even if compiled with
> the compat pkt_cls.h.
>
> Signed-off-by: Roi Dayan <roid at mellanox.com>
> ---
> acinclude.m4 | 8 ++++++++
> include/linux/pkt_cls.h | 2 ++
> 2 files changed, 10 insertions(+)
>
> diff --git a/acinclude.m4 b/acinclude.m4
> index a0507cfe019e..12513b82747d 100644
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -186,6 +186,14 @@ AC_DEFUN([OVS_CHECK_LINUX_TC], [
> [Define to 1 if TCA_FLOWER_KEY_ENC_IP_TTL_MASK is available.])])
>
> AC_COMPILE_IFELSE([
> + AC_LANG_PROGRAM([#include <linux/pkt_cls.h>], [
> + struct tcf_t x;
> + x.firstuse = 1;
> + ])],
> + [AC_DEFINE([HAVE_TCF_T_FIRSTUSE], [1],
> + [Define to 1 if struct tcf_t have firstuse.])])
> +
I think you can use AC_CHECK_MEMBERS:
AC_CHECK_MEMBERS([struct tcf_t.firstuse], [], [], [#include <linux/pkt_cls.h>
])
More information about the dev
mailing list