summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifeng Sun <pkusunyifeng@gmail.com>2019-04-26 14:42:07 -0700
committerBen Pfaff <blp@ovn.org>2019-04-27 22:15:00 -0700
commit8f6d230fcd41cf23e1c41922d60daf524cb37c8a (patch)
tree5c2de30917850c894543a77ca4192749edb08a65
parentb0b950c11d14bc4bcb8bd033f027672d7d3abc0b (diff)
downloadopenvswitch-8f6d230fcd41cf23e1c41922d60daf524cb37c8a.tar.gz
datapath: Fix compiling error for 4.14.111+ kernel
Acked-by: Yi-Hung Wei <yihung.wei@gmail.com> Tested-by: Greg Rose <gvrose8192@gmail.com> Reviewed-by: Greg Rose <gvrose8192@gmail.com> Fixes: f72469405eec9 ("datapath: meter: Use struct_size() in kzalloc()") Signed-off-by: Yifeng Sun <pkusunyifeng@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
-rw-r--r--.travis.yml2
-rw-r--r--acinclude.m42
-rw-r--r--datapath/linux/compat/include/linux/overflow.h4
-rw-r--r--datapath/meter.c1
4 files changed, 6 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml
index 32d5f1918..468c39ecd 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,7 +39,7 @@ env:
- KERNEL=4.17.19
- KERNEL=4.16.18
- KERNEL=4.15.18
- - KERNEL=4.14.63
+ - KERNEL=4.14.111
- KERNEL=4.9.149
- KERNEL=4.4.148
- KERNEL=3.19.8
diff --git a/acinclude.m4 b/acinclude.m4
index 301aeb70d..b532a4579 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -920,6 +920,8 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [
[OVS_DEFINE([HAVE_INET_FRAGS_RND])])
OVS_GREP_IFELSE([$KSRC/include/linux/overflow.h], [__LINUX_OVERFLOW_H],
[OVS_DEFINE([HAVE_OVERFLOW_H])])
+ OVS_GREP_IFELSE([$KSRC/include/linux/overflow.h], [struct_size],
+ [OVS_DEFINE([HAVE_STRUCT_SIZE])])
OVS_GREP_IFELSE([$KSRC/include/linux/mm.h], [kvmalloc_array],
[OVS_DEFINE([HAVE_KVMALLOC_ARRAY])])
OVS_GREP_IFELSE([$KSRC/include/linux/mm.h], [kvmalloc_node],
diff --git a/datapath/linux/compat/include/linux/overflow.h b/datapath/linux/compat/include/linux/overflow.h
index ff84356db..13ae6cf6a 100644
--- a/datapath/linux/compat/include/linux/overflow.h
+++ b/datapath/linux/compat/include/linux/overflow.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
-#ifdef HAVE_OVERFLOW_H
+#if defined(HAVE_OVERFLOW_H) && defined(HAVE_STRUCT_SIZE)
#include_next <linux/overflow.h>
#else
#ifndef __LINUX_OVERFLOW_H
@@ -310,4 +310,4 @@ static inline __must_check size_t __ab_c_size(size_t n, size_t size, size_t c)
sizeof(*(p)))
#endif /* __LINUX_OVERFLOW_H */
-#endif /* HAVE_OVERFLOW_H */
+#endif /* defined(HAVE_OVERFLOW_H) && defined(HAVE_STRUCT_SIZE) */
diff --git a/datapath/meter.c b/datapath/meter.c
index 51ec14950..eda14682f 100644
--- a/datapath/meter.c
+++ b/datapath/meter.c
@@ -13,6 +13,7 @@
#include <linux/ip.h>
#include <linux/kernel.h>
#include <linux/openvswitch.h>
+#include <linux/overflow.h>
#include <linux/netlink.h>
#include <linux/rculist.h>