The check for supported kernel versions is currently in datapath.c
but sometimes compatibility problems are hit before getting that far.
When this happens users get compiler errors and generally no
descriptive text.  This moves the check to version.h, which is almost
certainly included before any offending code.

Suggested-by: Pravin B Shelar <pshe...@nicira.com>
Signed-off-by: Jesse Gross <je...@nicira.com>
---
 datapath/datapath.c                           |    5 -----
 datapath/linux/Modules.mk                     |    1 +
 datapath/linux/compat/include/linux/version.h |   11 +++++++++++
 3 files changed, 12 insertions(+), 5 deletions(-)
 create mode 100644 datapath/linux/compat/include/linux/version.h

diff --git a/datapath/datapath.c b/datapath/datapath.c
index e98c84b..a9d9a3c 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -60,11 +60,6 @@
 #include "tunnel.h"
 #include "vport-internal_dev.h"
 
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) || \
-    LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
-#error Kernels before 2.6.18 or after 3.5 are not supported by this version of 
Open vSwitch.
-#endif
-
 #define REHASH_FLOW_INTERVAL (10 * 60 * HZ)
 static void rehash_flow_table(struct work_struct *work);
 static DECLARE_DELAYED_WORK(rehash_flow_wq, rehash_flow_table);
diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk
index 8ce6115..6283ff7 100644
--- a/datapath/linux/Modules.mk
+++ b/datapath/linux/Modules.mk
@@ -55,6 +55,7 @@ openvswitch_headers += \
        linux/compat/include/linux/types.h \
        linux/compat/include/linux/u64_stats_sync.h \
        linux/compat/include/linux/udp.h \
+       linux/compat/include/linux/version.h \
        linux/compat/include/linux/workqueue.h \
        linux/compat/include/net/checksum.h \
        linux/compat/include/net/dst.h \
diff --git a/datapath/linux/compat/include/linux/version.h 
b/datapath/linux/compat/include/linux/version.h
new file mode 100644
index 0000000..cdca86e
--- /dev/null
+++ b/datapath/linux/compat/include/linux/version.h
@@ -0,0 +1,11 @@
+#ifndef __LINUX_VERSION_WRAPPER_H
+#define __LINUX_VERSION_WRAPPER_H 1
+
+#include_next <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) || \
+    LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+#error Kernels before 2.6.18 or after 3.5 are not supported by this version of 
Open vSwitch.
+#endif
+
+#endif
-- 
1.7.9.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to