net: phy: fix up const issues in to_mdio_device() and to_phy_device()
[ Upstream commit e9cb929670a1e98b592b30f03f06e9e20110f318 ]
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: 7eab14de73
("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
@@ -44,10 +44,7 @@ struct mdio_device {
|
|||||||
unsigned int reset_deassert_delay;
|
unsigned int reset_deassert_delay;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct mdio_device *to_mdio_device(const struct device *dev)
|
#define to_mdio_device(__dev) container_of_const(__dev, struct mdio_device, dev)
|
||||||
{
|
|
||||||
return container_of(dev, struct mdio_device, dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* struct mdio_driver_common: Common to all MDIO drivers */
|
/* struct mdio_driver_common: Common to all MDIO drivers */
|
||||||
struct mdio_driver_common {
|
struct mdio_driver_common {
|
||||||
|
@@ -766,10 +766,7 @@ struct phy_device {
|
|||||||
/* Generic phy_device::dev_flags */
|
/* Generic phy_device::dev_flags */
|
||||||
#define PHY_F_NO_IRQ 0x80000000
|
#define PHY_F_NO_IRQ 0x80000000
|
||||||
|
|
||||||
static inline struct phy_device *to_phy_device(const struct device *dev)
|
#define to_phy_device(__dev) container_of_const(to_mdio_device(__dev), struct phy_device, mdio)
|
||||||
{
|
|
||||||
return container_of(to_mdio_device(dev), struct phy_device, mdio);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct phy_tdr_config - Configuration of a TDR raw test
|
* struct phy_tdr_config - Configuration of a TDR raw test
|
||||||
|
Reference in New Issue
Block a user