/* stmmac_tx_err: @priv: pointer to the private device structure Description: it cleans the descriptors and restarts the transmission in case of errors.  */
static void stmmac_tx_err(struct stmmac_priv *priv)
/* stmmac_tx_err: @priv: pointer to the private device structure Description: it cleans the descriptors and restarts the transmission in case of errors.  */
static void stmmac_tx_err(struct stmmac_priv *priv)
{
	netif_stop_queue(priv->dev);
	stmmac_dma_stop_tx(priv->dev->base_addr);
	dma_free_tx_skbufs(priv);
	priv->mac_type->ops->init_tx_desc(priv->dma_tx, priv->dma_tx_size);
	priv->dirty_tx = 0;
	priv->cur_tx = 0;
	stmmac_dma_start_tx(priv->dev->base_addr);
	priv->dev->stats.tx_errors++;
	netif_wake_queue(priv->dev);
	return;
}