From: Huang, Tao Date: Mon, 4 Jul 2016 11:11:52 +0000 (+0800) Subject: stmmac: do not sleep in atomic context while suspend/resume X-Git-Tag: firefly_0821_release~2244 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=firefly-linux-kernel-4.4.55.git;a=commitdiff_plain;h=62473fb31e1b38b767eec7b8f7308cca30b63641 stmmac: do not sleep in atomic context while suspend/resume Change-Id: Ie5da56ec33b202825e23d3a6fde499a6b831004b Signed-off-by: Huang, Tao --- diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 81ef9202a367..13e02c375708 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1745,9 +1745,11 @@ static int stmmac_hw_setup(struct net_device *dev, bool init_ptp) } #ifdef CONFIG_DEBUG_FS - ret = stmmac_init_fs(dev); - if (ret < 0) - pr_warn("%s: failed debugFS registration\n", __func__); + if (init_ptp) { + ret = stmmac_init_fs(dev); + if (ret < 0) + pr_warn("%s: failed debugFS registration\n", __func__); + } #endif /* Start the ball rolling... */ pr_debug("%s: DMA RX/TX processes started...\n", dev->name); @@ -3035,13 +3037,13 @@ int stmmac_suspend(struct net_device *ndev) if (priv->phydev) phy_stop(priv->phydev); - spin_lock_irqsave(&priv->lock, flags); - netif_device_detach(ndev); netif_stop_queue(ndev); napi_disable(&priv->napi); + spin_lock_irqsave(&priv->lock, flags); + /* Stop TX/RX DMA */ priv->hw->dma->stop_tx(priv->ioaddr); priv->hw->dma->stop_rx(priv->ioaddr);