diff options
Diffstat (limited to 'package')
-rw-r--r-- | package/kernel/mac80211/patches/005-backport_skb_get_hash_perturb.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/005-backport_skb_get_hash_perturb.patch b/package/kernel/mac80211/patches/005-backport_skb_get_hash_perturb.patch new file mode 100644 index 0000000000..8212910577 --- /dev/null +++ b/package/kernel/mac80211/patches/005-backport_skb_get_hash_perturb.patch @@ -0,0 +1,28 @@ +--- a/backport-include/linux/skbuff.h ++++ b/backport-include/linux/skbuff.h +@@ -1,6 +1,8 @@ + #ifndef __BACKPORT_SKBUFF_H + #define __BACKPORT_SKBUFF_H + #include_next <linux/skbuff.h> ++#include <net/flow_keys.h> ++#include <linux/jhash.h> + #include <linux/version.h> + #include <generated/utsrelease.h> + +@@ -305,6 +307,16 @@ static inline void skb_free_frag(void *d + { + put_page(virt_to_head_page(data)); + } ++ ++static inline u32 skb_get_hash_perturb(struct sk_buff *skb, u32 key) ++{ ++ struct flow_keys keys; ++ ++ skb_flow_dissect(skb, &keys); ++ return jhash_3words((__force u32)keys.dst, ++ (__force u32)keys.src ^ keys.ip_proto, ++ (__force u32)keys.ports, key); ++} + #endif + + #endif /* __BACKPORT_SKBUFF_H */ |