Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Jun 2011 19:45:47 +0000 (UTC)
From:      Martin Matuska <mm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r222867 - stable/8/sys/dev/xen/netfront
Message-ID:  <201106081945.p58JjltS044551@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mm
Date: Wed Jun  8 19:45:47 2011
New Revision: 222867
URL: http://svn.freebsd.org/changeset/base/222867

Log:
  MFC r218056:
  
  Fix bug in the netfront driver that caused excessive packet drops during
  receive processing.
  
  Remove unnecessary restrictions on the mbuf chain length built during an
  LRO receive.  This restriction was copied from the Linux netfront driver
  where the LRO implementation cannot handle more than 18 discontinuities.
  The FreeBSD implementation has no such restriction.
  
  Approved by:	gibbs (private e-mail)

Modified:
  stable/8/sys/dev/xen/netfront/netfront.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/dev/xen/netfront/netfront.c
==============================================================================
--- stable/8/sys/dev/xen/netfront/netfront.c	Wed Jun  8 19:38:31 2011	(r222866)
+++ stable/8/sys/dev/xen/netfront/netfront.c	Wed Jun  8 19:45:47 2011	(r222867)
@@ -1272,7 +1272,6 @@ xennet_get_responses(struct netfront_inf
 	struct mbuf *m, *m0, *m_prev;
 	grant_ref_t ref = xennet_get_rx_ref(np, *cons);
 	RING_IDX ref_cons = *cons;
-	int max = 5 /* MAX_TX_REQ_FRAGS + (rx->status <= RX_COPY_THRESHOLD) */;
 	int frags = 1;
 	int err = 0;
 	u_long ret;
@@ -1415,20 +1414,10 @@ next_skip_queue:
 		frags++;
 	}
 	*list = m0;
-
-	if (unlikely(frags > max)) {
-		if (net_ratelimit())
-			WPRINTK("Too many frags\n");
-		printf("%s: too many frags %d > max %d\n", __func__, frags,
-		       max);
-		err = E2BIG;
-	}
-
 	*cons += frags;
-
 	*pages_flipped_p = pages_flipped;
 
-	return err;
+	return (err);
 }
 
 static void



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106081945.p58JjltS044551>