aboutsummaryrefslogtreecommitdiff
path: root/tools/net/ynl/generated/devlink-user.c
diff options
context:
space:
mode:
authorJinjie Ruan <[email protected]>2023-10-11 11:24:19 +0800
committerJakub Kicinski <[email protected]>2023-10-13 16:29:46 -0700
commit61b40cefe51af005c72dbdcf975a3d166c6e6406 (patch)
treee274e1eb995df20734fa2fa7d9a8949dfcd6a232 /tools/net/ynl/generated/devlink-user.c
parentdda5e1ee1e86c7ad15f1a62e68e173078f4799a0 (diff)
net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register()
In bcm_sf2_mdio_register(), the class_find_device() will call get_device() to increment reference count for priv->master_mii_bus->dev if of_mdio_find_bus() succeeds. If mdiobus_alloc() or mdiobus_register() fails, it will call get_device() twice without decrement reference count for the device. And it is the same if bcm_sf2_mdio_register() succeeds but fails in bcm_sf2_sw_probe(), or if bcm_sf2_sw_probe() succeeds. If the reference count has not decremented to zero, the dev related resource will not be freed. So remove the get_device() in bcm_sf2_mdio_register(), and call put_device() if mdiobus_alloc() or mdiobus_register() fails and in bcm_sf2_mdio_unregister() to solve the issue. And as Simon suggested, unwind from errors for bcm_sf2_mdio_register() and just return 0 if it succeeds to make it cleaner. Fixes: 461cd1b03e32 ("net: dsa: bcm_sf2: Register our slave MDIO bus") Signed-off-by: Jinjie Ruan <[email protected]> Suggested-by: Simon Horman <[email protected]> Reviewed-by: Simon Horman <[email protected]> Reviewed-by: Florian Fainelli <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'tools/net/ynl/generated/devlink-user.c')
0 files changed, 0 insertions, 0 deletions