aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_main.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index d1d084018877..d07bc6de4387 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -1989,6 +1989,7 @@ int stmmac_suspend(struct net_device *ndev)
1989{ 1989{
1990 struct stmmac_priv *priv = netdev_priv(ndev); 1990 struct stmmac_priv *priv = netdev_priv(ndev);
1991 int dis_ic = 0; 1991 int dis_ic = 0;
1992 unsigned long flags;
1992 1993
1993 if (!ndev || !netif_running(ndev)) 1994 if (!ndev || !netif_running(ndev))
1994 return 0; 1995 return 0;
@@ -1996,7 +1997,7 @@ int stmmac_suspend(struct net_device *ndev)
1996 if (priv->phydev) 1997 if (priv->phydev)
1997 phy_stop(priv->phydev); 1998 phy_stop(priv->phydev);
1998 1999
1999 spin_lock(&priv->lock); 2000 spin_lock_irqsave(&priv->lock, flags);
2000 2001
2001 netif_device_detach(ndev); 2002 netif_device_detach(ndev);
2002 netif_stop_queue(ndev); 2003 netif_stop_queue(ndev);
@@ -2024,18 +2025,19 @@ int stmmac_suspend(struct net_device *ndev)
2024 /* Disable clock in case of PWM is off */ 2025 /* Disable clock in case of PWM is off */
2025 stmmac_clk_disable(priv); 2026 stmmac_clk_disable(priv);
2026 } 2027 }
2027 spin_unlock(&priv->lock); 2028 spin_unlock_irqrestore(&priv->lock, flags);
2028 return 0; 2029 return 0;
2029} 2030}
2030 2031
2031int stmmac_resume(struct net_device *ndev) 2032int stmmac_resume(struct net_device *ndev)
2032{ 2033{
2033 struct stmmac_priv *priv = netdev_priv(ndev); 2034 struct stmmac_priv *priv = netdev_priv(ndev);
2035 unsigned long flags;
2034 2036
2035 if (!netif_running(ndev)) 2037 if (!netif_running(ndev))
2036 return 0; 2038 return 0;
2037 2039
2038 spin_lock(&priv->lock); 2040 spin_lock_irqsave(&priv->lock, flags);
2039 2041
2040 /* Power Down bit, into the PM register, is cleared 2042 /* Power Down bit, into the PM register, is cleared
2041 * automatically as soon as a magic packet or a Wake-up frame 2043 * automatically as soon as a magic packet or a Wake-up frame
@@ -2063,7 +2065,7 @@ int stmmac_resume(struct net_device *ndev)
2063 2065
2064 netif_start_queue(ndev); 2066 netif_start_queue(ndev);
2065 2067
2066 spin_unlock(&priv->lock); 2068 spin_unlock_irqrestore(&priv->lock, flags);
2067 2069
2068 if (priv->phydev) 2070 if (priv->phydev)
2069 phy_start(priv->phydev); 2071 phy_start(priv->phydev);