datapath: Fix build on RHEL 5.5
authorPravin B Shelar <pshelar@nicira.com>
Thu, 8 Dec 2011 17:52:40 +0000 (09:52 -0800)
committerPravin B Shelar <pshelar@nicira.com>
Thu, 8 Dec 2011 17:52:40 +0000 (09:52 -0800)
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: Jesse Gross <jesse@nicira.com>
datapath/linux/Modules.mk
datapath/linux/compat/include/linux/ipv6.h
datapath/linux/compat/include/linux/jiffies.h
datapath/linux/compat/include/net/ipv6.h [new file with mode: 0644]

index bb8eff6..fdd952e 100644 (file)
@@ -60,6 +60,7 @@ openvswitch_headers += \
        linux/compat/include/net/netlink.h \
        linux/compat/include/net/protocol.h \
        linux/compat/include/net/route.h \
+       linux/compat/include/net/ipv6.h \
        linux/compat/genetlink.inc
 
 both_modules += brcompat
index fdbbe62..25a5431 100644 (file)
@@ -2,7 +2,6 @@
 #define __LINUX_IPV6_WRAPPER_H 1
 
 #include_next <linux/ipv6.h>
-#include <net/ipv6.h>
 
 #ifndef HAVE_SKBUFF_HEADER_HELPERS
 static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb)
@@ -11,11 +10,4 @@ static inline struct ipv6hdr *ipv6_hdr(const struct sk_buff *skb)
 }
 #endif
 
-/* This function is upstream but not the version which supplies the
- * fragment offset.  We plan to propose the extended version.
- */
-#define ipv6_skip_exthdr rpl_ipv6_skip_exthdr
-extern int rpl_ipv6_skip_exthdr(const struct sk_buff *skb, int start,
-                               u8 *nexthdrp, __be16 *frag_offp);
-
 #endif
index a64f226..642eace 100644 (file)
@@ -4,23 +4,31 @@
 #include_next <linux/jiffies.h>
 
 #include <linux/version.h>
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
 
 /* Same as above, but does so with platform independent 64bit types.
  * These must be used when utilizing jiffies_64 (i.e. return value of
  * get_jiffies_64() */
+
+#ifndef time_after64
 #define time_after64(a, b)       \
        (typecheck(__u64, a) && \
        typecheck(__u64, b) && \
        ((__s64)(b) - (__s64)(a) < 0))
+#endif
+
+#ifndef time_before64
 #define time_before64(a, b)      time_after64(b, a)
+#endif
 
+#ifndef time_after_eq64
 #define time_after_eq64(a, b)    \
        (typecheck(__u64, a) && \
        typecheck(__u64, b) && \
        ((__s64)(a) - (__s64)(b) >= 0))
-#define time_before_eq64(a, b)   time_after_eq64(b, a)
+#endif
 
-#endif /* linux kernel < 2.6.19 */
+#ifndef time_before_eq64
+#define time_before_eq64(a, b)   time_after_eq64(b, a)
+#endif
 
 #endif
diff --git a/datapath/linux/compat/include/net/ipv6.h b/datapath/linux/compat/include/net/ipv6.h
new file mode 100644 (file)
index 0000000..8bb7d65
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef __NET_IPV6_WRAPPER_H
+#define __NET_IPV6_WRAPPER_H 1
+
+#include_next <net/ipv6.h>
+
+/* This function is upstream but not the version which supplies the
+ * fragment offset.  We plan to propose the extended version.
+ */
+#define ipv6_skip_exthdr rpl_ipv6_skip_exthdr
+extern int ipv6_skip_exthdr(const struct sk_buff *skb, int start,
+                               u8 *nexthdrp, __be16 *frag_offp);
+
+#endif