Skip to content

Commit

Permalink
net: phy: fix memory leak in device-create error path
Browse files Browse the repository at this point in the history
A recent commit introduced a late error path in phy_device_create()
which fails to release the device name allocated by dev_set_name().

Fixes: 13d0ab6 ("net: phy: check return code when requesting PHY driver module")
Cc: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Johan Hovold authored and David S. Miller committed Aug 8, 2020
1 parent 1c3b63f commit d02cbc4
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions drivers/net/phy/phy_device.c
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,9 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
if (c45_ids)
dev->c45_ids = *c45_ids;
dev->irq = bus->irq[addr];

dev_set_name(&mdiodev->dev, PHY_ID_FMT, bus->id, addr);
device_initialize(&mdiodev->dev);

dev->state = PHY_DOWN;

Expand Down Expand Up @@ -649,10 +651,8 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, u32 phy_id,
ret = phy_request_driver_module(dev, phy_id);
}

if (!ret) {
device_initialize(&mdiodev->dev);
} else {
kfree(dev);
if (ret) {
put_device(&mdiodev->dev);
dev = ERR_PTR(ret);
}

Expand Down

0 comments on commit d02cbc4

Please sign in to comment.