X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=blobdiff_plain;f=datapath%2Flinux%2Fcompat%2Finclude%2Flinux%2Fskbuff.h;h=b5caa968020d44e1afdb2f06a337b8821e47e259;hp=714c955be410de28270c19c7857043bfa9370fd6;hb=e2f3178f0582eda302bdc5629189b6a56d9fbcdd;hpb=ca93abce9d3c6b7968c52a5458a6c94e7e8191d4 diff --git a/datapath/linux/compat/include/linux/skbuff.h b/datapath/linux/compat/include/linux/skbuff.h index 714c955be..b5caa9680 100644 --- a/datapath/linux/compat/include/linux/skbuff.h +++ b/datapath/linux/compat/include/linux/skbuff.h @@ -250,20 +250,27 @@ static inline int skb_orphan_frags(struct sk_buff *skb, gfp_t gfp_mask) } #endif +#ifndef HAVE_SKB_GET_HASH #if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) -#define __skb_get_rxhash rpl__skb_get_rxhash -#define skb_get_rxhash rpl_skb_get_rxhash +#define __skb_get_hash rpl__skb_get_rxhash +#define skb_get_hash rpl_skb_get_rxhash -extern u32 __skb_get_rxhash(struct sk_buff *skb); -static inline __u32 skb_get_rxhash(struct sk_buff *skb) +extern u32 __skb_get_hash(struct sk_buff *skb); +static inline __u32 skb_get_hash(struct sk_buff *skb) { #ifdef HAVE_RXHASH if (skb->rxhash) return skb->rxhash; #endif - return __skb_get_rxhash(skb); + return __skb_get_hash(skb); } +#else +#define skb_get_hash skb_get_rxhash +#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) */ +#endif /* HAVE_SKB_GET_HASH */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0) static inline void skb_tx_error(struct sk_buff *skb) { return; @@ -276,6 +283,14 @@ int skb_zerocopy(struct sk_buff *to, struct sk_buff *from, int len, int hlen); #endif +#ifndef HAVE_SKB_CLEAR_HASH +static inline void skb_clear_hash(struct sk_buff *skb) +{ +#if HAVE_RXHASH + skb->rxhash = 0; +#endif +} +#endif #ifndef HAVE_SKB_HAS_FRAG_LIST #define skb_has_frag_list skb_has_frags