summaryrefslogtreecommitdiffstats
path: root/sys/dev/xen
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2011-01-29 02:36:45 +0000
committergibbs <gibbs@FreeBSD.org>2011-01-29 02:36:45 +0000
commit18ab342cb369afafde348afc2c26bf00ced1420e (patch)
tree6bd310f324e6ef2cbf6b54ae91d2c091e21c5ad6 /sys/dev/xen
parentf689fa27ba120e327e15f54a3045b054588d5fbc (diff)
downloadFreeBSD-src-18ab342cb369afafde348afc2c26bf00ced1420e.zip
FreeBSD-src-18ab342cb369afafde348afc2c26bf00ced1420e.tar.gz
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. MFC after: 1 week
Diffstat (limited to 'sys/dev/xen')
-rw-r--r--sys/dev/xen/netfront/netfront.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/sys/dev/xen/netfront/netfront.c b/sys/dev/xen/netfront/netfront.c
index 61b14af..e47c3cc 100644
--- a/sys/dev/xen/netfront/netfront.c
+++ b/sys/dev/xen/netfront/netfront.c
@@ -1273,7 +1273,6 @@ xennet_get_responses(struct netfront_info *np,
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;
@@ -1416,20 +1415,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
OpenPOWER on IntegriCloud