net: Add utility function to copy skb hash
authorTom Herbert <therbert@google.com>
Mon, 16 Dec 2013 06:16:29 +0000 (22:16 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Dec 2013 21:36:22 +0000 (16:36 -0500)
Adds skb_copy_hash to copy rxhash and l4_rxhash from one skb to another.

Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
net/core/skbuff.c

index 9984695..06bedeb 100644 (file)
@@ -764,6 +764,12 @@ static inline void skb_clear_hash_if_not_l4(struct sk_buff *skb)
                skb_clear_hash(skb);
 }
 
+static inline void skb_copy_hash(struct sk_buff *to, const struct sk_buff *from)
+{
+       to->rxhash = from->rxhash;
+       to->l4_rxhash = from->l4_rxhash;
+};
+
 #ifdef NET_SKBUFF_DATA_USES_OFFSET
 static inline unsigned char *skb_end_pointer(const struct sk_buff *skb)
 {
index 06e72d3..2b6b863 100644 (file)
@@ -712,9 +712,8 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
        new->inner_network_header = old->inner_network_header;
        new->inner_mac_header = old->inner_mac_header;
        skb_dst_copy(new, old);
-       new->rxhash             = old->rxhash;
+       skb_copy_hash(new, old);
        new->ooo_okay           = old->ooo_okay;
-       new->l4_rxhash          = old->l4_rxhash;
        new->no_fcs             = old->no_fcs;
        new->encapsulation      = old->encapsulation;
 #ifdef CONFIG_XFRM