From 62473fb31e1b38b767eec7b8f7308cca30b63641 Mon Sep 17 00:00:00 2001 From: "Huang, Tao" Date: Mon, 4 Jul 2016 19:11:52 +0800 Subject: [PATCH] stmmac: do not sleep in atomic context while suspend/resume Change-Id: Ie5da56ec33b202825e23d3a6fde499a6b831004b Signed-off-by: Huang, Tao --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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); -- 2.34.1