From: Florian Fainelli Date: Wed, 1 Aug 2018 00:12:52 +0000 (-0700) Subject: net: dsa: Do not suspend/resume closed slave_dev X-Git-Tag: v4.17.13~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bfa48dc9a9f95ed2a26e53a06faf06bc1ba8d598;p=thirdparty%2Fkernel%2Fstable.git net: dsa: Do not suspend/resume closed slave_dev [ Upstream commit a94c689e6c9e72e722f28339e12dff191ee5a265 ] If a DSA slave network device was previously disabled, there is no need to suspend or resume it. Fixes: 2446254915a7 ("net: dsa: allow switch drivers to implement suspend/resume hooks") Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/dsa/slave.c b/net/dsa/slave.c index 18561af7a8f1d..01fa96f297344 100644 --- a/net/dsa/slave.c +++ b/net/dsa/slave.c @@ -1195,6 +1195,9 @@ int dsa_slave_suspend(struct net_device *slave_dev) { struct dsa_slave_priv *p = netdev_priv(slave_dev); + if (!netif_running(slave_dev)) + return 0; + netif_device_detach(slave_dev); if (slave_dev->phydev) { @@ -1210,6 +1213,9 @@ int dsa_slave_suspend(struct net_device *slave_dev) int dsa_slave_resume(struct net_device *slave_dev) { + if (!netif_running(slave_dev)) + return 0; + netif_device_attach(slave_dev); if (slave_dev->phydev) {