summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fec_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/fec_main.c')
-rw-r--r--drivers/net/ethernet/freescale/fec_main.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
index 3fedb5f6cb7a..d48e16da198a 100644
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1200,12 +1200,6 @@ fec_enet_tx(struct net_device *ndev)
/* Update pointer to next buffer descriptor to be transmitted */
bdp = fec_enet_get_nextdesc(bdp, fep);
-
- /* Since we have freed up a buffer, the ring is no longer full
- */
- if (netif_queue_stopped(ndev) &&
- fec_enet_get_free_txdesc_num(fep) >= fep->tx_wake_threshold)
- netif_wake_queue(ndev);
}
netdev_completed_queue(ndev, pkts_compl, bytes_compl);
@@ -1213,6 +1207,10 @@ fec_enet_tx(struct net_device *ndev)
/* ERR006538: Keep the transmitter going */
if (bdp != fep->cur_tx && readl(fep->hwp + FEC_X_DES_ACTIVE) == 0)
writel(0, fep->hwp + FEC_X_DES_ACTIVE);
+
+ if (netif_queue_stopped(ndev) &&
+ fec_enet_get_free_txdesc_num(fep) >= fep->tx_wake_threshold)
+ netif_wake_queue(ndev);
}
/* During a receive, the cur_rx points to the current incoming buffer.