X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Flinux-2.6%2Fcompat-2.6%2Finclude%2Flinux%2Fskbuff.h;h=dd9bfa37272d5e0f1eaef9476c683689776447e5;hb=e8cf6733e490cf78c1e5f5f58c3655011fb8ae22;hp=666ef85046360e89dfcd64b7179f4f311d66eba0;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch 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 666ef850..dd9bfa37 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 @@ -5,6 +5,17 @@ #include +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24) +/* In version 2.6.24 the return type of skb_headroom() changed from 'int' to + * 'unsigned int'. We use skb_headroom() as one arm of a min(a,b) invocation + * in make_writable() in actions.c, so we need the correct type. */ +#define skb_headroom rpl_skb_headroom +static inline unsigned int rpl_skb_headroom(const struct sk_buff *skb) +{ + return skb->data - skb->head; +} +#endif + #ifndef HAVE_SKB_COPY_FROM_LINEAR_DATA_OFFSET static inline void skb_copy_from_linear_data_offset(const struct sk_buff *skb, const int offset, void *to, @@ -42,7 +53,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 +74,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)