summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/gianfar.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/freescale/gianfar.c')
-rw-r--r--drivers/net/ethernet/freescale/gianfar.c35
1 files changed, 16 insertions, 19 deletions
diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 091945c..9fbe4dd 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -134,6 +134,7 @@ static int gfar_poll_sq(struct napi_struct *napi, int budget);
static void gfar_netpoll(struct net_device *dev);
#endif
int gfar_clean_rx_ring(struct gfar_priv_rx_q *rx_queue, int rx_work_limit);
+static void gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue);
static void gfar_process_frame(struct net_device *dev, struct sk_buff *skb,
int amount_pull, struct napi_struct *napi);
void gfar_halt(struct net_device *dev);
@@ -1300,7 +1301,7 @@ static int gfar_suspend(struct device *dev)
if (netif_running(ndev)) {
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_tx_qs(priv);
lock_rx_qs(priv);
@@ -1318,7 +1319,7 @@ static int gfar_suspend(struct device *dev)
unlock_rx_qs(priv);
unlock_tx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
disable_napi(priv);
@@ -1360,7 +1361,7 @@ static int gfar_resume(struct device *dev)
/* Disable Magic Packet mode, in case something
* else woke us up.
*/
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_tx_qs(priv);
lock_rx_qs(priv);
@@ -1372,7 +1373,7 @@ static int gfar_resume(struct device *dev)
unlock_rx_qs(priv);
unlock_tx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
netif_device_attach(ndev);
@@ -1700,7 +1701,7 @@ void stop_gfar(struct net_device *dev)
/* Lock it down */
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_tx_qs(priv);
lock_rx_qs(priv);
@@ -1708,7 +1709,7 @@ void stop_gfar(struct net_device *dev)
unlock_rx_qs(priv);
unlock_tx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
/* Free the IRQs */
if (priv->device_flags & FSL_GIANFAR_DEV_HAS_MULTI_INTR) {
@@ -2386,7 +2387,7 @@ void gfar_vlan_mode(struct net_device *dev, netdev_features_t features)
u32 tempval;
regs = priv->gfargrp[0].regs;
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_rx_qs(priv);
if (features & NETIF_F_HW_VLAN_CTAG_TX) {
@@ -2419,7 +2420,7 @@ void gfar_vlan_mode(struct net_device *dev, netdev_features_t features)
gfar_change_mtu(dev, dev->mtu);
unlock_rx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
}
static int gfar_change_mtu(struct net_device *dev, int new_mtu)
@@ -2515,7 +2516,7 @@ static void gfar_align_skb(struct sk_buff *skb)
}
/* Interrupt Handler for Transmit complete */
-static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
+static void gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
{
struct net_device *dev = tx_queue->dev;
struct netdev_queue *txq;
@@ -2938,14 +2939,10 @@ static int gfar_poll(struct napi_struct *napi, int budget)
tx_queue = priv->tx_queue[i];
/* run Tx cleanup to completion */
if (tx_queue->tx_skbuff[tx_queue->skb_dirtytx]) {
- int ret;
-
- ret = gfar_clean_tx_ring(tx_queue);
- if (ret)
- has_tx_work++;
+ gfar_clean_tx_ring(tx_queue);
+ has_tx_work = 1;
}
}
- work_done += has_tx_work;
for_each_set_bit(i, &gfargrp->rx_bit_map, priv->num_rx_queues) {
/* skip queue if not active */
@@ -3104,7 +3101,7 @@ static void adjust_link(struct net_device *dev)
struct phy_device *phydev = priv->phydev;
int new_state = 0;
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_tx_qs(priv);
if (phydev->link) {
@@ -3178,7 +3175,7 @@ static void adjust_link(struct net_device *dev)
if (new_state && netif_msg_link(priv))
phy_print_status(phydev);
unlock_tx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
}
/* Update the hash table based on the current list of multicast
@@ -3384,14 +3381,14 @@ static irqreturn_t gfar_error(int irq, void *grp_id)
dev->stats.tx_dropped++;
atomic64_inc(&priv->extra_stats.tx_underrun);
- local_irq_save_nort(flags);
+ local_irq_save(flags);
lock_tx_qs(priv);
/* Reactivate the Tx Queues */
gfar_write(&regs->tstat, gfargrp->tstat);
unlock_tx_qs(priv);
- local_irq_restore_nort(flags);
+ local_irq_restore(flags);
}
netif_dbg(priv, tx_err, dev, "Transmit Error\n");
}