]> Pileus Git - ~andy/linux/blobdiff - net/core/skbuff.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch
[~andy/linux] / net / core / skbuff.c
index 55859cb8b83d83d6f553fe2e1feb39631f056f4b..1d641e781f85c51d650e94aa800e546f34024aaa 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
@@ -3067,10 +3066,7 @@ perform_csum_check:
        return segs;
 
 err:
-       while ((skb = segs)) {
-               segs = skb->next;
-               kfree_skb(skb);
-       }
+       kfree_skb_list(segs);
        return ERR_PTR(err);
 }
 EXPORT_SYMBOL_GPL(skb_segment);
@@ -3669,6 +3665,7 @@ void skb_scrub_packet(struct sk_buff *skb, bool xnet)
        skb->tstamp.tv64 = 0;
        skb->pkt_type = PACKET_HOST;
        skb->skb_iif = 0;
+       skb->local_df = 0;
        skb_dst_drop(skb);
        skb->mark = 0;
        secpath_reset(skb);