net: fix a wrong assignment in skb_split()
authorAmerigo Wang <amwang@redhat.com>
Tue, 19 Feb 2013 22:51:30 +0000 (22:51 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 20 Feb 2013 20:11:44 +0000 (15:11 -0500)
commit c9af6db4c11ccc6c3e7f1 (net: Fix possible wrong checksum generation)
has a suspicous piece:

-       skb_shinfo(skb1)->gso_type = skb_shinfo(skb)->gso_type;
-
+       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;

skb1 is the new skb, therefore should be on the left side of the assignment.
This patch fixes it.

Cc: Pravin B Shelar <pshelar@nicira.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Cong Wang <amwang@redhat.com>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/skbuff.c

index 2a3ca33c30aabd28569616824dd12c837b68faa4..33245ef54c3bd6982abed459cc6c0ef7935cb21f 100644 (file)
@@ -2326,7 +2326,7 @@ void skb_split(struct sk_buff *skb, struct sk_buff *skb1, const u32 len)
 {
        int pos = skb_headlen(skb);
 
-       skb_shinfo(skb)->tx_flags = skb_shinfo(skb1)->tx_flags & SKBTX_SHARED_FRAG;
+       skb_shinfo(skb1)->tx_flags = skb_shinfo(skb)->tx_flags & SKBTX_SHARED_FRAG;
        if (len < pos)  /* Split line is inside header. */
                skb_split_inside_header(skb, skb1, len, pos);
        else            /* Second chunk has no header, nothing to copy. */