Revert "net: mdio_bus: Use devm for getting reset GPIO"
authorJakub Kicinski <kuba@kernel.org>
Fri, 1 Aug 2025 21:27:42 +0000 (14:27 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 5 Aug 2025 00:22:01 +0000 (17:22 -0700)
commit175811b8f05f0da3e19b7d3124666649ddde3802
treedc630b323112bebf50aeaeb1075b69e388c94d5b
parent5ef7fdf52c0f2b792802aac3438e67e5ebe7e63d
Revert "net: mdio_bus: Use devm for getting reset GPIO"

This reverts commit 3b98c9352511db627b606477fc7944b2fa53a165.

Russell says:

  Using devm_*() [here] is completely wrong, because this is called
  from mdiobus_register_device(). This is not the probe function
  for the device, and thus there is no code to trigger the release of
  the resource on unregistration.

  Moreover, when the mdiodev is eventually probed, if the driver fails
  or the driver is unbound, the GPIO will be released, but a reference
  will be left behind.

  Using devm* with a struct device that is *not* currently being probed
  is fundamentally wrong - an abuse of devm.

Reported-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/95449490-fa58-41d4-9493-c9213c1f2e7d@sirena.org.uk
Suggested-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Fixes: 3b98c9352511 ("net: mdio_bus: Use devm for getting reset GPIO")
Link: https://patch.msgid.link/20250801212742.2607149-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/mdio_bus.c