summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--acinclude.m412
-rw-r--r--configure.ac1
-rw-r--r--lib/netdev-linux.c8
3 files changed, 21 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
index 054ec2e3c..863a04349 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -250,6 +250,18 @@ AC_DEFUN([OVS_CHECK_LINUX_SCTP_CT], [
[Define to 1 if SCTP_CONNTRACK_HEARTBEAT_SENT is available.])])
])
+dnl OVS_CHECK_LINUX_VIRTIO_TYPES
+dnl
+dnl Checks for kernels that need virtio_types definition.
+AC_DEFUN([OVS_CHECK_LINUX_VIRTIO_TYPES], [
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([#include <linux/virtio_types.h>], [
+ __virtio16 x = 0;
+ ])],
+ [AC_DEFINE([HAVE_VIRTIO_TYPES], [1],
+ [Define to 1 if __virtio16 is available.])])
+])
+
dnl OVS_FIND_DEPENDENCY(FUNCTION, SEARCH_LIBS, NAME_TO_PRINT)
dnl
dnl Check for a function in a library list.
diff --git a/configure.ac b/configure.ac
index 1877aae56..5ce510c20 100644
--- a/configure.ac
+++ b/configure.ac
@@ -188,6 +188,7 @@ OVS_CHECK_LINUX
OVS_CHECK_LINUX_NETLINK
OVS_CHECK_LINUX_TC
OVS_CHECK_LINUX_SCTP_CT
+OVS_CHECK_LINUX_VIRTIO_TYPES
OVS_CHECK_DPDK
OVS_CHECK_PRAGMA_MESSAGE
AC_SUBST([OVS_CFLAGS])
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index 6269c24ac..fe7fb9b29 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -227,6 +227,14 @@ struct rtnl_link_stats64 {
uint64_t tx_compressed;
};
+/* Linux 3.19 introduced virtio_types.h. It might be missing
+ * if we are using old kernel. */
+#ifndef HAVE_VIRTIO_TYPES
+typedef __u16 __bitwise__ __virtio16;
+typedef __u32 __bitwise__ __virtio32;
+typedef __u64 __bitwise__ __virtio64;
+#endif
+
enum {
VALID_IFINDEX = 1 << 0,
VALID_ETHERADDR = 1 << 1,