david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Force a netdevice poll in net_tx() before attempting to transmit

packet, to work around the problem whereby small TX rings get backed
up because we haven't yet poll()ed for TX completions.
This commit is contained in:
Michael Brown 2007-10-04 14:46:56 +01:00
parent 0979e674bb
commit 2303c45d65
1 changed files with 8 additions and 0 deletions

View File

@ -424,6 +424,14 @@ struct net_device * find_netdev_by_location ( unsigned int bus_type,
*/
int net_tx ( struct io_buffer *iobuf, struct net_device *netdev,
struct net_protocol *net_protocol, const void *ll_dest ) {
/* Force a poll on the netdevice to (potentially) clear any
* backed-up TX completions. This is needed on some network
* devices to avoid excessive losses due to small TX ring
* sizes.
*/
netdev_poll ( netdev );
return netdev->ll_protocol->tx ( iobuf, netdev, net_protocol, ll_dest );
}