summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2007-07-03 15:44:33 +0200
committerMichael Brown2007-07-03 15:44:33 +0200
commite436b993a926e7cf3eb95b918d8de3f161baeceb (patch)
tree0b55ba7f7ae804c31eb83a66a4175c143a939615 /src
parentIt's not just Etherboot that fails to generate TX completions. (diff)
downloadipxe-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.
Diffstat (limited to 'src')
-rw-r--r--src/drivers/net/rtl8139.c3
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;
}