Skip to content

Commit 0c5e3df

Browse files
committed
[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 <miroslav.halas@bankofamerica.com> Debugged-by: Miroslav Halas <miroslav.halas@bankofamerica.com> Tested-by: Miroslav Halas <miroslav.halas@bankofamerica.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
1 parent c4ee23e commit 0c5e3df

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/drivers/net/intel.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,7 @@ static void intel_poll ( struct net_device *netdev ) {
700700
intel_poll_tx ( netdev );
701701

702702
/* Poll for RX completions, if applicable */
703-
if ( icr & INTEL_IRQ_RXT0 )
703+
if ( icr & ( INTEL_IRQ_RXT0 | INTEL_IRQ_RXO ) )
704704
intel_poll_rx ( netdev );
705705

706706
/* Report receive overruns */

0 commit comments

Comments
 (0)