From dc0d542d5254c1e6b749df4c34aeb549e5599df4 Mon Sep 17 00:00:00 2001 From: Kyle Mestery Date: Mon, 22 Jul 2013 10:38:13 -0400 Subject: [PATCH] datapath: Conditionally define skb_unclone in datapath compat code Recent versions of Fedora have skb_unclone included in their kernels. This patch adds a conditional check into the compat directory so as not to error out by defining it twice. This allows the latest OVS kernel module to build on Fedora 19. Signed-off-by: Kyle Mestery Signed-off-by: Jesse Gross --- acinclude.m4 | 1 + datapath/linux/compat/include/linux/skbuff.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/acinclude.m4 b/acinclude.m4 index 717c68166..30a4dc6d6 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -256,6 +256,7 @@ AC_DEFUN([OVS_CHECK_LINUX_COMPAT], [ OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [consume_skb]) OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_frag_page]) OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_reset_mac_len]) + OVS_GREP_IFELSE([$KSRC/include/linux/skbuff.h], [skb_unclone]) OVS_GREP_IFELSE([$KSRC/include/linux/string.h], [kmemdup], [], [OVS_GREP_IFELSE([$KSRC/include/linux/slab.h], [kmemdup])]) diff --git a/datapath/linux/compat/include/linux/skbuff.h b/datapath/linux/compat/include/linux/skbuff.h index c9c103d0c..461e07cfb 100644 --- a/datapath/linux/compat/include/linux/skbuff.h +++ b/datapath/linux/compat/include/linux/skbuff.h @@ -252,6 +252,7 @@ static inline void skb_reset_mac_len(struct sk_buff *skb) } #endif +#ifndef HAVE_SKB_UNCLONE static inline int skb_unclone(struct sk_buff *skb, gfp_t pri) { might_sleep_if(pri & __GFP_WAIT); @@ -261,6 +262,7 @@ static inline int skb_unclone(struct sk_buff *skb, gfp_t pri) return 0; } +#endif #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37) extern u32 __skb_get_rxhash(struct sk_buff *skb); -- 2.43.0