diff options
| author | Buday Csaba <buday.csaba@prolan.hu> | 2025-11-08 07:49:22 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-11-24 10:29:59 +0100 |
| commit | 2a5c3396f6d917b8157c75a3f45828ad60481ac6 (patch) | |
| tree | 12eb67672d286ee4d7bfd42e3e4679f12922b74c /drivers | |
| parent | c92dbf85627b5c29e52d9c120a24e785801716df (diff) | |
| download | linux-2a5c3396f6d917b8157c75a3f45828ad60481ac6.tar.gz linux-2a5c3396f6d917b8157c75a3f45828ad60481ac6.tar.bz2 linux-2a5c3396f6d917b8157c75a3f45828ad60481ac6.zip | |
net: mdio: fix resource leak in mdiobus_register_device()
[ Upstream commit e6ca8f533ed41129fcf052297718f417f021cc7d ]
Fix a possible leak in mdiobus_register_device() when both a
reset-gpio and a reset-controller are present.
Clean up the already claimed reset-gpio, when the registration of
the reset-controller fails, so when an error code is returned, the
device retains its state before the registration attempt.
Link: https://lore.kernel.org/all/20251106144603.39053c81@kernel.org/
Fixes: 71dd6c0dff51 ("net: phy: add support for reset-controller")
Signed-off-by: Buday Csaba <buday.csaba@prolan.hu>
Link: https://patch.msgid.link/4b419377f8dd7d2f63f919d0f74a336c734f8fff.1762584481.git.buday.csaba@prolan.hu
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/phy/mdio_bus.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index f1fac89721ed..7da30a6752be 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -81,8 +81,11 @@ int mdiobus_register_device(struct mdio_device *mdiodev) return err; err = mdiobus_register_reset(mdiodev); - if (err) + if (err) { + gpiod_put(mdiodev->reset_gpio); + mdiodev->reset_gpio = NULL; return err; + } /* Assert the reset signal */ mdio_device_reset(mdiodev, 1); |
