skb_cow() has been present since 2.6.12 or earlier, but skb_cow_head() was
added only in 2.6.23, so we were checking for the wrong identifier here.
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h],
[skb_copy_from_linear_data_offset],
[OVS_DEFINE([HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h],
[skb_copy_from_linear_data_offset],
[OVS_DEFINE([HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET])])
- OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_cow],
- [OVS_DEFINE([HAVE_SKB_COW])])
+ OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_cow_head],
+ [OVS_DEFINE([HAVE_SKB_COW_HEAD])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_transport_header],
[OVS_DEFINE([HAVE_SKBUFF_HEADER_HELPERS])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_warn_if_lro],
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_transport_header],
[OVS_DEFINE([HAVE_SKBUFF_HEADER_HELPERS])])
OVS_GREP_IFELSE([$KSRC26/include/linux/skbuff.h], [skb_warn_if_lro],
#define NET_SKB_PAD 16
#endif
#define NET_SKB_PAD 16
#endif
+#ifndef HAVE_SKB_COW_HEAD
static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
int cloned)
{
static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
int cloned)
{
{
return __skb_cow(skb, headroom, skb_header_cloned(skb));
}
{
return __skb_cow(skb, headroom, skb_header_cloned(skb));
}
-#endif /* !HAVE_SKB_COW */
+#endif /* !HAVE_SKB_COW_HEAD */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
static inline int skb_clone_writable(struct sk_buff *skb, int len)
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
static inline int skb_clone_writable(struct sk_buff *skb, int len)