[ovs-dev] [PATCH 2/2] datapath: Fix build with Centos 5.3 kernel.

Ben Pfaff blp at nicira.com
Fri Oct 9 17:10:52 UTC 2009


Properly it should be "master" since it doesn't matter for the
5.5.0 beta.  But our release tarballs are made from "citrix", and
presumably we want this fix for 0.90.7.

Your call.

Justin Pettit <jpettit at nicira.com> writes:

> Looks good.  Thanks for tracking this down.  Which branch were you
> targeting?
>
> --Justin
>
>
> On Oct 9, 2009, at 9:45 AM, Ben Pfaff wrote:
>
>> 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 at as2594.net>
>> ---
>> acinclude.m4                                       |    4 ++++
>> .../linux-2.6/compat-2.6/include/linux/skbuff.h    |    4 ++--
>> .../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 4294920..d5d7c09 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 666ef85..2831721 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 c64c6bd..3b6debb 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 */
>> --
>> 1.6.3.3
>>
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org




More information about the dev mailing list