net: mdio: fix owner field for mdio buses registered using device-tree
[ Upstream commit 99669259f3361d759219811e670b7e0742668556 ]
Bus ownership is wrong when using of_mdiobus_register() to register an mdio
bus. That function is not inline, so when it calls mdiobus_register() the wrong
THIS_MODULE value is captured.
Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Fixes: 90eff9096c
("net: phy: Allow splitting MDIO bus/device support from PHYs")
[florian: fix kdoc, added Fixes tag]
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
1b333766ea
commit
d04dac7fae
@@ -98,13 +98,14 @@ EXPORT_SYMBOL(__devm_mdiobus_register);
|
||||
|
||||
#if IS_ENABLED(CONFIG_OF_MDIO)
|
||||
/**
|
||||
* devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register()
|
||||
* __devm_of_mdiobus_register - Resource managed variant of of_mdiobus_register()
|
||||
* @dev: Device to register mii_bus for
|
||||
* @mdio: MII bus structure to register
|
||||
* @np: Device node to parse
|
||||
* @owner: Owning module
|
||||
*/
|
||||
int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
|
||||
struct device_node *np)
|
||||
int __devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
|
||||
struct device_node *np, struct module *owner)
|
||||
{
|
||||
struct mdiobus_devres *dr;
|
||||
int ret;
|
||||
@@ -117,7 +118,7 @@ int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
|
||||
if (!dr)
|
||||
return -ENOMEM;
|
||||
|
||||
ret = of_mdiobus_register(mdio, np);
|
||||
ret = __of_mdiobus_register(mdio, np, owner);
|
||||
if (ret) {
|
||||
devres_free(dr);
|
||||
return ret;
|
||||
@@ -127,7 +128,7 @@ int devm_of_mdiobus_register(struct device *dev, struct mii_bus *mdio,
|
||||
devres_add(dev, dr);
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(devm_of_mdiobus_register);
|
||||
EXPORT_SYMBOL(__devm_of_mdiobus_register);
|
||||
#endif /* CONFIG_OF_MDIO */
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
|
Reference in New Issue
Block a user