diff mbox series

[drivers/net] #ifdef mdio_bus_phy_suspend() and mdio_bus_phy_suspend()

Message ID 20210303175338.GA15338@paulmck-ThinkPad-P72 (mailing list archive)
State Not Applicable
Delegated to: Netdev Maintainers
Headers show
Series [drivers/net] #ifdef mdio_bus_phy_suspend() and mdio_bus_phy_suspend() | expand

Checks

Context Check Description
netdev/apply fail Patch does not apply to net
netdev/tree_selection success Clearly marked for net

Commit Message

Paul E. McKenney March 3, 2021, 5:53 p.m. UTC
drivers/net: #ifdef mdio_bus_phy_suspend() and mdio_bus_phy_suspend()

The following build error is emitted by rcutorture builds of v5.12-rc1:

drivers/net/phy/phy_device.c:293:12: warning: ‘mdio_bus_phy_resume’ defined but not used [-Wunused-function]
drivers/net/phy/phy_device.c:273:12: warning: ‘mdio_bus_phy_suspend’ defined but not used [-Wunused-function]

The problem is that these functions are only used by SIMPLE_DEV_PM_OPS(),
which creates a dev_pm_ops structure only in CONFIG_PM_SLEEP=y kernels.
Therefore, the mdio_bus_phy_suspend() and mdio_bus_phy_suspend() functions
will be used only in CONFIG_PM_SLEEP=y kernels.  This commit therefore
wraps them in #ifdef CONFIG_PM_SLEEP.

Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: <netdev@vger.kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

Comments

Russell King (Oracle) March 3, 2021, 6:04 p.m. UTC | #1
On Wed, Mar 03, 2021 at 09:53:38AM -0800, Paul E. McKenney wrote:
> drivers/net: #ifdef mdio_bus_phy_suspend() and mdio_bus_phy_suspend()
> 
> The following build error is emitted by rcutorture builds of v5.12-rc1:
> 
> drivers/net/phy/phy_device.c:293:12: warning: ‘mdio_bus_phy_resume’ defined but not used [-Wunused-function]
> drivers/net/phy/phy_device.c:273:12: warning: ‘mdio_bus_phy_suspend’ defined but not used [-Wunused-function]
> 
> The problem is that these functions are only used by SIMPLE_DEV_PM_OPS(),
> which creates a dev_pm_ops structure only in CONFIG_PM_SLEEP=y kernels.
> Therefore, the mdio_bus_phy_suspend() and mdio_bus_phy_suspend() functions
> will be used only in CONFIG_PM_SLEEP=y kernels.  This commit therefore
> wraps them in #ifdef CONFIG_PM_SLEEP.

Arnd submitted a patch that Jakub has applied which fix these warnings
in a slightly different way. Please see
20210225145748.404410-1-arnd@kernel.org
Paul E. McKenney March 3, 2021, 6:15 p.m. UTC | #2
On Wed, Mar 03, 2021 at 06:04:22PM +0000, Russell King - ARM Linux admin wrote:
> On Wed, Mar 03, 2021 at 09:53:38AM -0800, Paul E. McKenney wrote:
> > drivers/net: #ifdef mdio_bus_phy_suspend() and mdio_bus_phy_suspend()
> > 
> > The following build error is emitted by rcutorture builds of v5.12-rc1:
> > 
> > drivers/net/phy/phy_device.c:293:12: warning: ‘mdio_bus_phy_resume’ defined but not used [-Wunused-function]
> > drivers/net/phy/phy_device.c:273:12: warning: ‘mdio_bus_phy_suspend’ defined but not used [-Wunused-function]
> > 
> > The problem is that these functions are only used by SIMPLE_DEV_PM_OPS(),
> > which creates a dev_pm_ops structure only in CONFIG_PM_SLEEP=y kernels.
> > Therefore, the mdio_bus_phy_suspend() and mdio_bus_phy_suspend() functions
> > will be used only in CONFIG_PM_SLEEP=y kernels.  This commit therefore
> > wraps them in #ifdef CONFIG_PM_SLEEP.
> 
> Arnd submitted a patch that Jakub has applied which fix these warnings
> in a slightly different way. Please see
> 20210225145748.404410-1-arnd@kernel.org

Works for me!  When will this be hitting mainline?

Not a huge deal given that I can suppress the resulting rcutorture
failures by keeping a copy of either patch in -rcu, but I might not
be the only one hitting this.

							Thanx, Paul
diff mbox series

Patch

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index ce49547..d6fb6e7 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -270,6 +270,8 @@  static bool mdio_bus_phy_may_suspend(struct phy_device *phydev)
 	return !phydev->suspended;
 }
 
+#ifdef CONFIG_PM_SLEEP
+
 static int mdio_bus_phy_suspend(struct device *dev)
 {
 	struct phy_device *phydev = to_phy_device(dev);
@@ -314,6 +316,8 @@  static int mdio_bus_phy_resume(struct device *dev)
 	return 0;
 }
 
+#endif
+
 static SIMPLE_DEV_PM_OPS(mdio_bus_phy_pm_ops, mdio_bus_phy_suspend,
 			 mdio_bus_phy_resume);
 #endif /* CONFIG_PM */