WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] netfront/back: do not mark packets of

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] netfront/back: do not mark packets of length < MSS as GSO
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 Jan 2009 02:51:04 -0800
Delivery-date: Fri, 16 Jan 2009 02:54:49 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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 <=