aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/net/natsemi.c
diff options
context:
space:
mode:
authorUdayan Kumar <udayan.kumar@gmail.com>2007-07-01 18:05:58 -0400
committerUdayan Kumar <udayan.kumar@gmail.com>2007-07-14 21:08:05 -0400
commit6d4dafdc6e4973ab74e3f41e439decaf1b7eb722 (patch)
treefd4379b17a0df7ce32147f59129580d5941290c8 /src/drivers/net/natsemi.c
parentc6d0ef34787104d6011ff2a1f7ed8a8c726e9d4d (diff)
downloadipxe-6d4dafdc6e4973ab74e3f41e439decaf1b7eb722.tar.gz
added netdev_tx_complete to natsemi.c
Diffstat (limited to 'src/drivers/net/natsemi.c')
-rw-r--r--src/drivers/net/natsemi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/drivers/net/natsemi.c b/src/drivers/net/natsemi.c
index f1a226051..5d3a0287e 100644
--- a/src/drivers/net/natsemi.c
+++ b/src/drivers/net/natsemi.c
@@ -45,6 +45,9 @@ struct natsemi_nic {
* alternatively substracting sizeof(head) and sizeof(list_head) can also
* give the same.*/
struct io_buffer *iobuf[NUM_RX_DESC];
+ /*netdev_tx_complete needs pointer to the iobuf of the data so as to free
+ it form the memory.*/
+ struct io_buffer *tx_iobuf[TX_RING_SIZE];
struct spi_bit_basher spibit;
struct spi_device eeprom;
struct nvo_block nvo;
@@ -415,6 +418,8 @@ static int nat_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) {
}
//DBG_HD(iobuf->data,iob_len(iobuf));
+ /* to be used in netdev_tx_complete*/
+ nat->tx_iobuf[nat->tx_cur]=iobuf;
/* Pad and align packet */
iob_pad ( iobuf, ETH_ZLEN );
@@ -473,6 +478,7 @@ static void nat_poll ( struct net_device *netdev, unsigned int rx_quota ) {
DBG("Success in transmitting Packet with data\n");
// DBG_HD(&nat->tx[nat->tx_dirty].bufptr,130);
}
+ netdev_tx_complete(netdev,nat->tx_iobuf[nat->tx_dirty]);
/* setting cmdsts zero, indicating that it can be reused */
nat->tx[nat->tx_dirty].cmdsts=0;
nat->tx_dirty=(nat->tx_dirty +1) % TX_RING_SIZE;