[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1288045398-3110-1-git-send-email-fleitner@redhat.com>
Date: Mon, 25 Oct 2010 20:23:18 -0200
From: Flavio Leitner <fleitner@...hat.com>
To: netdev <netdev@...r.kernel.org>
Cc: Flavio Leitner <fleitner@...hat.com>
Subject: [PATCH] net: reset gso header when the copied skb is linearized
The gso header is incorrect when the copied skb is
linearized. This patch creates another helper function
to copy the gso header when it is appropriated
Signed-off-by: Flavio Leitner <fleitner@...hat.com>
---
net/core/skbuff.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 104f844..54a2d3a 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -649,6 +649,12 @@ static void copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
if (skb_mac_header_was_set(new))
new->mac_header += offset;
#endif
+}
+
+static void copy_skb_header_gso(struct sk_buff *new, const struct sk_buff *old)
+{
+ copy_skb_header(new, old);
+
skb_shinfo(new)->gso_size = skb_shinfo(old)->gso_size;
skb_shinfo(new)->gso_segs = skb_shinfo(old)->gso_segs;
skb_shinfo(new)->gso_type = skb_shinfo(old)->gso_type;
@@ -740,7 +746,7 @@ struct sk_buff *pskb_copy(struct sk_buff *skb, gfp_t gfp_mask)
skb_clone_fraglist(n);
}
- copy_skb_header(n, skb);
+ copy_skb_header_gso(n, skb);
out:
return n;
}
--
1.7.3.1
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists