diff options
| author | Michael Brown | 2007-07-03 15:44:33 +0200 |
|---|---|---|
| committer | Michael Brown | 2007-07-03 15:44:33 +0200 |
| commit | e436b993a926e7cf3eb95b918d8de3f161baeceb (patch) | |
| tree | 0b55ba7f7ae804c31eb83a66a4175c143a939615 | |
| parent | It's not just Etherboot that fails to generate TX completions. (diff) | |
| download | ipxe-e436b993a926e7cf3eb95b918d8de3f161baeceb.tar.gz ipxe-e436b993a926e7cf3eb95b918d8de3f161baeceb.tar.xz ipxe-e436b993a926e7cf3eb95b918d8de3f161baeceb.zip | |
Avoid double free on I/O buffer when rtl_transmit() returns failure.
Convert printf() to DBG(); printf() is not allowed in drivers.
| -rw-r--r-- | src/drivers/net/rtl8139.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c index 6acffd9b..06d40aaa 100644 --- a/src/drivers/net/rtl8139.c +++ b/src/drivers/net/rtl8139.c @@ -380,8 +380,7 @@ static int rtl_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) { /* Check for space in TX ring */ if ( rtl->tx.iobuf[rtl->tx.next] != NULL ) { - printf ( "TX overflow\n" ); - free_iob ( iobuf ); + DBG ( "TX overflow\n" ); return -ENOBUFS; } |
