]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: mdio_bus: Use devm for getting reset GPIO
authorBence Csókás <csokas.bence@prolan.hu>
Mon, 28 Jul 2025 15:34:55 +0000 (17:34 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 31 Jul 2025 02:10:25 +0000 (19:10 -0700)
Commit bafbdd527d56 ("phylib: Add device reset GPIO support") removed
devm_gpiod_get_optional() in favor of the non-devres managed
fwnode_get_named_gpiod(). When it was kind-of reverted by commit
40ba6a12a548 ("net: mdio: switch to using gpiod_get_optional()"), the devm
functionality was not reinstated. Nor was the GPIO unclaimed on device
remove. This leads to the GPIO being claimed indefinitely, even when the
device and/or the driver gets removed.

Fixes: bafbdd527d56 ("phylib: Add device reset GPIO support")
Fixes: 40ba6a12a548 ("net: mdio: switch to using gpiod_get_optional()")
Cc: Csaba Buday <buday.csaba@prolan.hu>
Signed-off-by: Bence Csókás <csokas.bence@prolan.hu>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://patch.msgid.link/20250728153455.47190-2-csokas.bence@prolan.hu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/mdio_bus.c

index fda2e27c18105cff83292a2b6fbc4d989d1db576..24bdab5bdd24a96ef0349b3fd2a8979c4b501fbe 100644 (file)
@@ -36,8 +36,8 @@
 static int mdiobus_register_gpiod(struct mdio_device *mdiodev)
 {
        /* Deassert the optional reset signal */
-       mdiodev->reset_gpio = gpiod_get_optional(&mdiodev->dev,
-                                                "reset", GPIOD_OUT_LOW);
+       mdiodev->reset_gpio = devm_gpiod_get_optional(&mdiodev->dev,
+                                                     "reset", GPIOD_OUT_LOW);
        if (IS_ERR(mdiodev->reset_gpio))
                return PTR_ERR(mdiodev->reset_gpio);