mirror of
https://github.com/ipxe/ipxe
synced 2026-02-02 19:57:34 +03:00
[intel] Report receive overruns via network device errors
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -699,10 +699,14 @@ static void intel_poll ( struct net_device *netdev ) {
|
|||||||
if ( icr & INTEL_IRQ_TXDW )
|
if ( icr & INTEL_IRQ_TXDW )
|
||||||
intel_poll_tx ( netdev );
|
intel_poll_tx ( netdev );
|
||||||
|
|
||||||
/* Poll for RX completionsm, if applicable */
|
/* Poll for RX completions, if applicable */
|
||||||
if ( icr & INTEL_IRQ_RXT0 )
|
if ( icr & INTEL_IRQ_RXT0 )
|
||||||
intel_poll_rx ( netdev );
|
intel_poll_rx ( netdev );
|
||||||
|
|
||||||
|
/* Report receive overruns */
|
||||||
|
if ( icr & INTEL_IRQ_RXO )
|
||||||
|
netdev_rx_err ( netdev, NULL, -ENOBUFS );
|
||||||
|
|
||||||
/* Check link state, if applicable */
|
/* Check link state, if applicable */
|
||||||
if ( icr & INTEL_IRQ_LSC )
|
if ( icr & INTEL_IRQ_LSC )
|
||||||
intel_check_link ( netdev );
|
intel_check_link ( netdev );
|
||||||
|
|||||||
@@ -93,6 +93,7 @@ enum intel_descriptor_status {
|
|||||||
#define INTEL_IRQ_TXDW 0x00000001UL /**< Transmit descriptor done */
|
#define INTEL_IRQ_TXDW 0x00000001UL /**< Transmit descriptor done */
|
||||||
#define INTEL_IRQ_LSC 0x00000004UL /**< Link status change */
|
#define INTEL_IRQ_LSC 0x00000004UL /**< Link status change */
|
||||||
#define INTEL_IRQ_RXT0 0x00000080UL /**< Receive timer */
|
#define INTEL_IRQ_RXT0 0x00000080UL /**< Receive timer */
|
||||||
|
#define INTEL_IRQ_RXO 0x00000400UL /**< Receive overrun */
|
||||||
|
|
||||||
/** Interrupt Mask Set/Read Register */
|
/** Interrupt Mask Set/Read Register */
|
||||||
#define INTEL_IMS 0x000d0UL
|
#define INTEL_IMS 0x000d0UL
|
||||||
|
|||||||
Reference in New Issue
Block a user