diff options
| author | Ben Pfaff <blp@nicira.com> | 2009-10-09 09:41:29 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2009-10-09 09:44:51 -0700 |
| commit | aed944953be7c8d71beada565ac9923ab86855e5 (patch) | |
| tree | f2451382fd9d4d814b7ad59ffe48842e7923980d | |
| parent | bf7446a4f4b17cebb4500fe9d57b8d240567795e (diff) | |
| download | openvswitch-aed944953be7c8d71beada565ac9923ab86855e5.tar.gz | |
datapath: Fix build with Centos 5.3 kernel.
Centos 5.3 backports more functions from later kernel versions to 2.6.18,
so the kernel version number is no longer a reliable way to check for these
functions. Thus, add a "configure" test for them.
Reported-by: Paulo Cravero <pcravero@as2594.net>
| -rw-r--r-- | acinclude.m4 | 4 | ||||
| -rw-r--r-- | datapath/linux-2.6/compat-2.6/include/linux/skbuff.h | 4 | ||||
| -rw-r--r-- | datapath/linux-2.6/compat-2.6/include/net/checksum.h | 7 |
3 files changed, 8 insertions, 7 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 429492097..d5d7c0959 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -133,6 +133,10 @@ AC_DEFUN([OVS_CHECK_LINUX26_COMPAT], [ [OVS_DEFINE([HAVE_NLA_NUL_STRING])]) OVS_GREP_IFELSE([$KSRC26/include/linux/err.h], [ERR_CAST], [OVS_DEFINE([HAVE_ERR_CAST])]) + OVS_GREP_IFELSE([$KSRC26/include/net/checksum.h], [csum_unfold], + [OVS_DEFINE([HAVE_CSUM_UNFOLD])]) + OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_cow], + [OVS_DEFINE([HAVE_SKB_COW])]) OVS_CHECK_LOG2_H OVS_CHECK_VETH if cmp -s datapath/linux-2.6/kcompat.h.new \ diff --git a/datapath/linux-2.6/compat-2.6/include/linux/skbuff.h b/datapath/linux-2.6/compat-2.6/include/linux/skbuff.h index 666ef8504..283172126 100644 --- a/datapath/linux-2.6/compat-2.6/include/linux/skbuff.h +++ b/datapath/linux-2.6/compat-2.6/include/linux/skbuff.h @@ -42,7 +42,7 @@ static inline void skb_copy_to_linear_data_offset(struct sk_buff *skb, #define NET_SKB_PAD 16 #endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) +#ifndef HAVE_SKB_COW static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom, int cloned) { @@ -63,7 +63,7 @@ static inline int skb_cow_head(struct sk_buff *skb, unsigned int headroom) { return __skb_cow(skb, headroom, skb_header_cloned(skb)); } -#endif /* linux < 2.6.23 */ +#endif /* !HAVE_SKB_COW */ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17) diff --git a/datapath/linux-2.6/compat-2.6/include/net/checksum.h b/datapath/linux-2.6/compat-2.6/include/net/checksum.h index c64c6bd0c..3b6debb1d 100644 --- a/datapath/linux-2.6/compat-2.6/include/net/checksum.h +++ b/datapath/linux-2.6/compat-2.6/include/net/checksum.h @@ -3,14 +3,11 @@ #include_next <net/checksum.h> -#include <linux/version.h> -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) - +#ifndef HAVE_CSUM_UNFOLD static inline __wsum csum_unfold(__sum16 n) { return (__force __wsum)n; } - -#endif /* linux kernel < 2.6.20 */ +#endif /* !HAVE_CSUM_UNFOLD */ #endif /* checksum.h */ |
