|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [linux-2.6.18-xen] netfront/back: do not mark packets of
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1231859874 0
# Node ID 107e10e0e07c3984630b8d3eaecb5bb957be387a
# Parent 28acedb66302a29c9ef14a3084b4736d3fc192f1
netfront/back: do not mark packets of length < MSS as GSO
Linux assumes that skbs marked for GSO are longer than MSS. In
particular tcp_tso_segment assumes that skb_segment will return a
chain of at least 2 skbs.
Both netfront and back should therefor not pass such a packet up the
stack.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
drivers/xen/netback/netback.c | 5 +++++
drivers/xen/netfront/netfront.c | 8 ++++++++
2 files changed, 13 insertions(+)
diff -r 28acedb66302 -r 107e10e0e07c drivers/xen/netback/netback.c
--- a/drivers/xen/netback/netback.c Wed Jan 07 12:21:54 2009 +0900
+++ b/drivers/xen/netback/netback.c Tue Jan 13 15:17:54 2009 +0000
@@ -1345,6 +1345,11 @@ static void net_tx_action(unsigned long
skb_shinfo(skb)->frags[0].page = (void *)~0UL;
}
+ if (skb->data_len < skb_shinfo(skb)->gso_size) {
+ skb_shinfo(skb)->gso_size = 0;
+ skb_shinfo(skb)->gso_type = 0;
+ }
+
__skb_queue_tail(&tx_queue, skb);
pending_cons++;
diff -r 28acedb66302 -r 107e10e0e07c drivers/xen/netfront/netfront.c
--- a/drivers/xen/netfront/netfront.c Wed Jan 07 12:21:54 2009 +0900
+++ b/drivers/xen/netfront/netfront.c Tue Jan 13 15:17:54 2009 +0000
@@ -1439,6 +1439,14 @@ err:
np->stats.rx_packets++;
np->stats.rx_bytes += skb->len;
+#if HAVE_TSO
+ if (skb->data_len < skb_shinfo(skb)->gso_size) {
+ skb_shinfo(skb)->gso_size = 0;
+#if HAVE_GSO
+ skb_shinfo(skb)->gso_type = 0;
+#endif
+ }
+#endif
__skb_queue_tail(&rxq, skb);
np->rx.rsp_cons = ++i;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [linux-2.6.18-xen] netfront/back: do not mark packets of length < MSS as GSO,
Xen patchbot-linux-2.6.18-xen <=
|
|
|
|
|