|
@@ -1894,7 +1894,10 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
unsigned int nopaged_len = skb_headlen(skb);
|
|
|
unsigned int enh_desc = priv->plat->enh_desc;
|
|
|
|
|
|
+ spin_lock(&priv->tx_lock);
|
|
|
+
|
|
|
if (unlikely(stmmac_tx_avail(priv) < nfrags + 1)) {
|
|
|
+ spin_unlock(&priv->tx_lock);
|
|
|
if (!netif_queue_stopped(dev)) {
|
|
|
netif_stop_queue(dev);
|
|
|
/* This is a hard error, log it. */
|
|
@@ -1903,8 +1906,6 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
return NETDEV_TX_BUSY;
|
|
|
}
|
|
|
|
|
|
- spin_lock(&priv->tx_lock);
|
|
|
-
|
|
|
if (priv->tx_path_in_lpi_mode)
|
|
|
stmmac_disable_eee_mode(priv);
|
|
|
|