• Petr Malat's avatar
    phy: Fix phy_device_free memory leak · b2a43191
    Petr Malat authored
    Fix memory leak in phy_device_free() for the case when phy_device*
    returned by phy_device_create() is not registered in the system.
    
    Bug description:
    phy_device_create() sets name of kobject using dev_set_name(), which
    allocates memory using kvasprintf(), but this memory isn't freed if
    the underlying device isn't registered properly, because kobject_cleanup()
    is not called in that case. This can happen (and actually is happening on
    our machines) if phy_device_register(), called by mdiobus_scan(), fails.
    
    Patch description:
    Embedded struct device is initialized in phy_device_create() and it
    counterpart phy_device_free() just drops one reference to the device,
    which leads to proper deinitialization including releasing the kobject
    name memory.
    Signed-off-by: default avatarPetr Malat <oss@malat.biz>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b2a43191
phy_device.c 27.4 KB