david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[intel] Report receive overruns via network device errors

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2012-10-24 11:21:34 -07:00
parent 7cf6c6bfed
commit dace457baf
2 changed files with 6 additions and 1 deletions

View File

@ -699,10 +699,14 @@ static void intel_poll ( struct net_device *netdev ) {
if ( icr & INTEL_IRQ_TXDW )
intel_poll_tx ( netdev );
/* Poll for RX completionsm, if applicable */
/* Poll for RX completions, if applicable */
if ( icr & INTEL_IRQ_RXT0 )
intel_poll_rx ( netdev );
/* Report receive overruns */
if ( icr & INTEL_IRQ_RXO )
netdev_rx_err ( netdev, NULL, -ENOBUFS );
/* Check link state, if applicable */
if ( icr & INTEL_IRQ_LSC )
intel_check_link ( netdev );

View File

@ -93,6 +93,7 @@ enum intel_descriptor_status {
#define INTEL_IRQ_TXDW 0x00000001UL /**< Transmit descriptor done */
#define INTEL_IRQ_LSC 0x00000004UL /**< Link status change */
#define INTEL_IRQ_RXT0 0x00000080UL /**< Receive timer */
#define INTEL_IRQ_RXO 0x00000400UL /**< Receive overrun */
/** Interrupt Mask Set/Read Register */
#define INTEL_IMS 0x000d0UL