]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: phy: fix up const issues in to_mdio_device() and to_phy_device()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 May 2025 11:21:47 +0000 (13:21 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 28 May 2025 00:35:25 +0000 (17:35 -0700)
Both to_mdio_device() and to_phy_device() "throw away" the const pointer
attribute passed to them and return a non-const pointer, which generally
is not a good thing overall.  Fix this up by using container_of_const()
which was designed for this very problem.

Cc: Alexander Lobakin <alobakin@pm.me>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>
Fixes: 7eab14de73a8 ("mdio, phy: fix -Wshadow warnings triggered by nested container_of()")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2025052246-conduit-glory-8fc9@gregkh
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/mdio.h
include/linux/phy.h

index 3c3deac57894efdc1cb0e38dab6b817cbb5ac920..e43ff9f980a46b5ba56af013864fa3b8fbe34bfd 100644 (file)
@@ -45,10 +45,7 @@ struct mdio_device {
        unsigned int reset_deassert_delay;
 };
 
-static inline struct mdio_device *to_mdio_device(const struct device *dev)
-{
-       return container_of(dev, struct mdio_device, dev);
-}
+#define to_mdio_device(__dev)  container_of_const(__dev, struct mdio_device, dev)
 
 /* struct mdio_driver_common: Common to all MDIO drivers */
 struct mdio_driver_common {
index 32b9da2741153bcfafaf71b2cf04379764d161dd..e194dad1623d3fcb8e37591a26334ba75410876d 100644 (file)
@@ -744,10 +744,7 @@ struct phy_device {
 #define PHY_F_NO_IRQ           0x80000000
 #define PHY_F_RXC_ALWAYS_ON    0x40000000
 
-static inline struct phy_device *to_phy_device(const struct device *dev)
-{
-       return container_of(to_mdio_device(dev), struct phy_device, mdio);
-}
+#define to_phy_device(__dev)   container_of_const(to_mdio_device(__dev), struct phy_device, mdio)
 
 /**
  * struct phy_tdr_config - Configuration of a TDR raw test