
From: Jeff Moyer <jmoyer@redhat.com>

I've upped the poll budget to 16 and added a comment explaining why.  I
definitely ran into this problem when testing netdump.

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 /dev/null                  |    0 
 25-akpm/net/core/netpoll.c |    8 +++++++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff -puN net/core/netpoll.c~netpoll-increase-napi-budget net/core/netpoll.c
--- 25/net/core/netpoll.c~netpoll-increase-napi-budget	Thu Aug 26 16:36:33 2004
+++ 25-akpm/net/core/netpoll.c	Thu Aug 26 16:36:33 2004
@@ -63,7 +63,13 @@ static int checksum_udp(struct sk_buff *
 
 void netpoll_poll(struct netpoll *np)
 {
-	int budget = 1;
+	/*
+	 * In cases where there is bi-directional communications, reading
+	 * only one message at a time can lead to packets being dropped by
+	 * the network adapter, forcing superfluous retries and possibly
+	 * timeouts.  Thus, we set our budget to a more reasonable value.
+	 */
+	int budget = 16;
 
 	if(!np->dev || !netif_running(np->dev) || !np->dev->poll_controller)
 		return;
diff -L net/core/netpoll.c.budget -puN /dev/null /dev/null
_
