diff options
author | Michael Brown | 2007-01-09 21:18:31 +0100 |
---|---|---|
committer | Michael Brown | 2007-01-09 21:18:31 +0100 |
commit | b7fcfe8ece36c80ddeca08aa3873063e2aefa536 (patch) | |
tree | 0c93c3baa8e256342a5795152ede5d336b2790e1 /src/arch/i386/drivers/net/undinet.c | |
parent | Move start/stop/expire debug messages to DBG2() level. (diff) | |
download | ipxe-b7fcfe8ece36c80ddeca08aa3873063e2aefa536.tar.gz ipxe-b7fcfe8ece36c80ddeca08aa3873063e2aefa536.tar.xz ipxe-b7fcfe8ece36c80ddeca08aa3873063e2aefa536.zip |
Added net device TX queue; this will be needed to support the PXE UNDI API
(which will need us to wait for TX completions).
Added debug autocolourisation to netdevice.c
Diffstat (limited to 'src/arch/i386/drivers/net/undinet.c')
-rw-r--r-- | src/arch/i386/drivers/net/undinet.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index dc48c975..42b0cfb7 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -349,11 +349,15 @@ static int undinet_transmit ( struct net_device *netdev, = ( ( unsigned ) & __from_data16 ( undinet_pkb ) ); /* Issue PXE API call */ - rc = undinet_call ( undinic, PXENV_UNDI_TRANSMIT, &undi_transmit, - sizeof ( undi_transmit ) ); + if ( ( rc = undinet_call ( undinic, PXENV_UNDI_TRANSMIT, + &undi_transmit, + sizeof ( undi_transmit ) ) ) != 0 ) + goto done; - /* Free packet buffer and return */ - free_pkb ( pkb ); + /* Free packet buffer */ + netdev_tx_complete ( netdev, pkb ); + + done: return rc; } |