diff --git a/src/drivers/net/intel.c b/src/drivers/net/intel.c index 04e86dd4..f5601263 100644 --- a/src/drivers/net/intel.c +++ b/src/drivers/net/intel.c @@ -593,7 +593,7 @@ int intel_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) { physaddr_t address; /* Get next transmit descriptor */ - if ( ( intel->tx.prod - intel->tx.cons ) >= INTEL_NUM_TX_DESC ) { + if ( ( intel->tx.prod - intel->tx.cons ) >= INTEL_TX_FILL ) { DBGC ( intel, "INTEL %p out of transmit descriptors\n", intel ); return -ENOBUFS; } diff --git a/src/drivers/net/intel.h b/src/drivers/net/intel.h index 20b4255e..8ce9ea97 100644 --- a/src/drivers/net/intel.h +++ b/src/drivers/net/intel.h @@ -156,6 +156,9 @@ enum intel_descriptor_status { */ #define INTEL_NUM_TX_DESC 16 +/** Transmit descriptor ring maximum fill level */ +#define INTEL_TX_FILL ( INTEL_NUM_TX_DESC - 1 ) + /** Receive/Transmit Descriptor Base Address Low (offset) */ #define INTEL_xDBAL 0x00