aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/vxge/vxge-main.c
diff options
context:
space:
mode:
authorSreenivasa Honnur <Sreenivasa.Honnur@neterion.com>2010-03-28 18:08:30 -0400
committerDavid S. Miller <davem@davemloft.net>2010-03-29 19:57:21 -0400
commit3363276f1c420b7de92169ddabd2bb88aa26a7d6 (patch)
treefa5a2439f59cc90f104d9baf546a5f1e83233f4c /drivers/net/vxge/vxge-main.c
parent18dec74c16abaa92d663dfef64ee6503e085be89 (diff)
vxge: Fix starvation of receive ring controller when blasted by short packets.
- Fix starvation of receive ring controller when blasted by short packets. This was because the driver was posting 64 rxds initially while the ring controller was expecting to read 256 replenished rxds. While the driver was coming up, the internal rxd memory filled up the 64 buffers provided and the ring controller was left waiting for the remaining 192 rxds to complete the write back of completed rxds to the host and generation of an interrupt. Signed-off-by: Sreenivasa Honnur <sreenivasa.honnur@neterion.com> Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vxge/vxge-main.c')
-rw-r--r--drivers/net/vxge/vxge-main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 0006837f535c..cada8fc51d4f 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -444,7 +444,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr,
444 ring->ndev->name, __func__, __LINE__); 444 ring->ndev->name, __func__, __LINE__);
445 ring->pkts_processed = 0; 445 ring->pkts_processed = 0;
446 446
447 vxge_hw_ring_replenish(ringh, 0); 447 vxge_hw_ring_replenish(ringh);
448 448
449 do { 449 do {
450 prefetch((char *)dtr + L1_CACHE_BYTES); 450 prefetch((char *)dtr + L1_CACHE_BYTES);