summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/stmicro
diff options
context:
space:
mode:
authorJoao Pinto <Joao.Pinto@synopsys.com>2017-03-15 11:04:48 +0000
committerDavid S. Miller <davem@davemloft.net>2017-03-15 14:44:32 -0700
commit4e593262290c3488ca7ab8b41a5c70c284e12b57 (patch)
treef876924fd19f664b2a0f8e205aed52a1b739356f /drivers/net/ethernet/stmicro
parentae4f0d46830814e11ec91b8c76ebf3ae3f8140d7 (diff)
downloadlinux-4e593262290c3488ca7ab8b41a5c70c284e12b57.tar.gz
linux-4e593262290c3488ca7ab8b41a5c70c284e12b57.tar.bz2
linux-4e593262290c3488ca7ab8b41a5c70c284e12b57.zip
net: stmmac: prepare stmmac_tx_err for multiple queues
This patch prepares stmmac_err for multiple queues. Signed-off-by: Joao Pinto <jpinto@synopsys.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/stmicro')
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index a537276e1055..b166c05e2a5d 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -1525,12 +1525,12 @@ static inline void stmmac_disable_dma_irq(struct stmmac_priv *priv, u32 chan)
/**
* stmmac_tx_err - to manage the tx error
* @priv: driver private structure
+ * @chan: channel index
* Description: it cleans the descriptors and restarts the transmission
* in case of transmission errors.
*/
-static void stmmac_tx_err(struct stmmac_priv *priv)
+static void stmmac_tx_err(struct stmmac_priv *priv, u32 chan)
{
- u32 chan = STMMAC_CHAN0;
int i;
netif_stop_queue(priv->dev);
@@ -1616,7 +1616,7 @@ static void stmmac_dma_interrupt(struct stmmac_priv *priv)
priv->xstats.threshold = tc;
}
} else if (unlikely(status == tx_hard_error))
- stmmac_tx_err(priv);
+ stmmac_tx_err(priv, chan);
}
/**
@@ -2944,9 +2944,10 @@ static int stmmac_poll(struct napi_struct *napi, int budget)
static void stmmac_tx_timeout(struct net_device *dev)
{
struct stmmac_priv *priv = netdev_priv(dev);
+ u32 chan = STMMAC_CHAN0;
/* Clear Tx resources and restart transmitting again */
- stmmac_tx_err(priv);
+ stmmac_tx_err(priv, chan);
}
/**