xircom_cb should return NETDEV_TX_BUSY when no descriptors available
authorErik Mouw <mouw@nl.linux.org>
Mon, 4 Feb 2008 17:56:54 +0000 (18:56 +0100)
committerJeff Garzik <jeff@garzik.org>
Tue, 5 Feb 2008 18:31:29 +0000 (13:31 -0500)
Changes in other networking paths uncovered a bug in the xircom_cb
driver which made the kernel spew lots of the following error messages:

  BUG eth1 code -5 qlen 0

It turned out that the driver returned -EIO when there was no
descriptor available for sending packets. It should return
NETDEV_TX_BUSY instead. This was discussed on the netdev list before,
see http://thread.gmane.org/gmane.linux.network/84603 .

Signed-off-by: Erik Mouw <mouw@nl.linux.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/tulip/xircom_cb.c

index 8fc7274..6b93d01 100644 (file)
@@ -441,7 +441,7 @@ static int xircom_start_xmit(struct sk_buff *skb, struct net_device *dev)
        spin_unlock_irqrestore(&card->lock,flags);
        trigger_transmit(card);
 
-       return -EIO;
+       return NETDEV_TX_BUSY;
 }