diff options
author | Li Yang <leoli@freescale.com> | 2007-03-18 23:58:02 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-03-23 01:48:34 -0400 |
commit | 6f6881b846e3d97ee15f6ab1f6529cd1cc2f4c28 (patch) | |
tree | ddbd7a59b3acad1284a5ac8670461329c8d8b28b | |
parent | e4d08359ffb6580ee7a014d162162b2d18aa4ec0 (diff) |
Revert "ucc_geth: returns NETDEV_TX_BUSY when BD ring is full"
This reverts commit 18babd38547a042a4bfd4154a014d1ad33373eb0.
Michael Barkowski points out that it's wrong, and I agree. The
patch causes a problem rather than fixes one after another
patch "ucc_geth: Fix BD processing" was applied. Before that
patch, current packet should be blocked. However after the patch
current packet is ok and we only need to block next.
Reported-by: Michael Barkowski <michael.barkowski@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/net/ucc_geth.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c index dab88b958d6e..639e1e6913bf 100644 --- a/drivers/net/ucc_geth.c +++ b/drivers/net/ucc_geth.c | |||
@@ -3607,7 +3607,6 @@ static int ucc_geth_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3607 | if (bd == ugeth->confBd[txQ]) { | 3607 | if (bd == ugeth->confBd[txQ]) { |
3608 | if (!netif_queue_stopped(dev)) | 3608 | if (!netif_queue_stopped(dev)) |
3609 | netif_stop_queue(dev); | 3609 | netif_stop_queue(dev); |
3610 | return NETDEV_TX_BUSY; | ||
3611 | } | 3610 | } |
3612 | 3611 | ||
3613 | ugeth->txBd[txQ] = bd; | 3612 | ugeth->txBd[txQ] = bd; |
@@ -3623,7 +3622,7 @@ static int ucc_geth_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
3623 | 3622 | ||
3624 | spin_unlock_irq(&ugeth->lock); | 3623 | spin_unlock_irq(&ugeth->lock); |
3625 | 3624 | ||
3626 | return NETDEV_TX_OK; | 3625 | return 0; |
3627 | } | 3626 | } |
3628 | 3627 | ||
3629 | static int ucc_geth_rx(struct ucc_geth_private *ugeth, u8 rxQ, int rx_work_limit) | 3628 | static int ucc_geth_rx(struct ucc_geth_private *ugeth, u8 rxQ, int rx_work_limit) |