From 773d6f2c497890dad5572f0b83aa1cbc0e049145 Mon Sep 17 00:00:00 2001 From: Luan Yuan Date: Tue, 7 May 2019 14:56:56 +0800 Subject: [PATCH] Revert "ethernet: handle tx timeout" This reverts commit 6b195f8476e7ffaa9c1c946f5e7b6ea7b75d1b71. --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 32 +++-------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 35ce8e1..3e77065 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -124,8 +124,6 @@ static void stmmac_exit_fs(struct net_device *dev); #define STMMAC_COAL_TIMER(x) (jiffies + usecs_to_jiffies(x)) -static struct workqueue_struct *moniter_tx_wq; -static struct delayed_work moniter_tx_worker; /** * stmmac_verify_args - verify the driver parameters. * Description: it checks the driver parameters and set a default in case of @@ -1453,9 +1451,8 @@ static void stmmac_tx_err(struct stmmac_priv *priv) priv->hw->desc->init_tx_desc(&priv->dma_tx[i], priv->mode, (i == DMA_TX_SIZE - 1)); - //priv->dirty_tx = 0; - //priv->cur_tx = 0; - priv->cur_tx = priv->dirty_tx; + priv->dirty_tx = 0; + priv->cur_tx = 0; netdev_reset_queue(priv->dev); priv->hw->dma->start_tx(priv->ioaddr); @@ -1878,7 +1875,6 @@ static int stmmac_open(struct net_device *dev) napi_enable(&priv->napi); netif_start_queue(dev); - queue_delayed_work(moniter_tx_wq, &moniter_tx_worker, HZ); return 0; lpiirq_error: @@ -2721,14 +2717,12 @@ static int stmmac_poll(struct napi_struct *napi, int budget) * netdev structure and arrange for the device to be reset to a sane state * in order to transmit a new packet. */ -unsigned int timeout_err; static void stmmac_tx_timeout(struct net_device *dev) { struct stmmac_priv *priv = netdev_priv(dev); /* Clear Tx resources and restart transmitting again */ stmmac_tx_err(priv); - timeout_err = 1; } /** @@ -3266,21 +3260,6 @@ static int stmmac_hw_init(struct stmmac_priv *priv) return 0; } -struct stmmac_priv *priv_monitor; -static void moniter_tx_handler(struct work_struct *work) -{ - if (priv_monitor) { - if (timeout_err) { - pr_info("recover eth\n"); - stmmac_release(priv_monitor->dev); - stmmac_open(priv_monitor->dev); - timeout_err = 0; - } - } else { - pr_info("device not init yet!\n"); - } - queue_delayed_work(moniter_tx_wq, &moniter_tx_worker, HZ); -} /** * stmmac_dvr_probe * @device: device pointer @@ -3299,8 +3278,6 @@ int stmmac_dvr_probe(struct device *device, struct net_device *ndev = NULL; struct stmmac_priv *priv; - moniter_tx_wq = create_singlethread_workqueue("eth_moniter_tx_wq"); - INIT_DELAYED_WORK(&moniter_tx_worker, moniter_tx_handler); ndev = alloc_etherdev(sizeof(struct stmmac_priv)); if (!ndev) return -ENOMEM; @@ -3452,7 +3429,6 @@ int stmmac_dvr_probe(struct device *device, ret = gmac_create_sysfs( mdiobus_get_phy(priv->mii, priv->plat->phy_addr), priv->ioaddr); #endif - priv_monitor = priv; return ret; error_netdev_register: @@ -3523,7 +3499,6 @@ int stmmac_suspend(struct device *dev) struct stmmac_priv *priv = netdev_priv(ndev); unsigned long flags; - cancel_delayed_work_sync(&moniter_tx_worker); if (!ndev || !netif_running(ndev)) return 0; @@ -3629,6 +3604,7 @@ int stmmac_resume(struct device *dev) stmmac_init_tx_coalesce(priv); stmmac_set_rx_mode(ndev); + #ifdef CONFIG_AMLOGIC_ETH_PRIVE netif_device_attach(ndev); #endif @@ -3641,8 +3617,6 @@ int stmmac_resume(struct device *dev) if (priv->phydev) phy_start(priv->phydev); - queue_delayed_work(moniter_tx_wq, &moniter_tx_worker, HZ); - timeout_err = 1; return 0; } EXPORT_SYMBOL_GPL(stmmac_resume); -- 2.7.4