From 0c5e3df6d91961e05844678e70902f0537cb2a22 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 25 Oct 2012 16:09:09 -0700 Subject: [intel] Poll RX queue if hardware reports RX overflow The Intel NIC emulation in some versions of VMware seems to suffer from a flaw whereby the Interrupt Cause Register (ICR) fails to assert the usual "packet received" bit (ICR.RXT0) if a receive overflow (ICR.RXO) has also occurred. Work around this flaw by polling for completed descriptors whenever either ICR.RXT0 or ICR.RXO is asserted. Reported-by: Miroslav Halas Debugged-by: Miroslav Halas Tested-by: Miroslav Halas Signed-off-by: Michael Brown --- src/drivers/net/intel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c index 0811ed91..399b5354 100644 --- a/src/drivers/net/intel.c +++ b/src/drivers/net/intel.c @@ -700,7 +700,7 @@ static void intel_poll ( struct net_device *netdev ) { intel_poll_tx ( netdev ); /* Poll for RX completions, if applicable */ - if ( icr & INTEL_IRQ_RXT0 ) + if ( icr & ( INTEL_IRQ_RXT0 | INTEL_IRQ_RXO ) ) intel_poll_rx ( netdev ); /* Report receive overruns */ -- cgit v1.2.3-55-g7522