diff options
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 |
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 | ||
2031 | int stmmac_resume(struct net_device *ndev) | 2032 | int 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); |