Re: [PATCH] net: rswitch: Fix a possible memory leak in rswitch_phy_device_init()
From: Andrew Lunn
Date: Tue Sep 10 2024 - 10:48:37 EST
On Mon, Sep 09, 2024 at 05:28:25PM +0800, Jinjie Ruan wrote:
> of_phy_find_device() calls bus_find_device(), which calls get_device()
> on the returned struct device * to increment the refcount. The current
> implementation does not decrement the refcount, which causes memory leak.
>
> So add the missing phy_device_free() call to decrement the
> refcount via put_device() to balance the refcount.
>
> Fixes: 0df024d0f1d3 ("net: renesas: rswitch: Add host_interfaces setting")
> Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
> ---
> drivers/net/ethernet/renesas/rswitch.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/renesas/rswitch.c b/drivers/net/ethernet/renesas/rswitch.c
> index ff50e20856ec..69a67bd75f33 100644
> --- a/drivers/net/ethernet/renesas/rswitch.c
> +++ b/drivers/net/ethernet/renesas/rswitch.c
> @@ -1404,6 +1404,7 @@ static int rswitch_phy_device_init(struct rswitch_device *rdev)
> goto out;
> __set_bit(rdev->etha->phy_interface, phydev->host_interfaces);
> phydev->mac_managed_pm = true;
> + phy_device_free(phydev);
>
> phydev = of_phy_connect(rdev->ndev, phy, rswitch_adjust_link, 0,
> rdev->etha->phy_interface);
This has the same problem as discussed in
net: ethernet: nxp: Fix a possible memory leak in lpc_mii_probe()
I've not looked to see if there are more of these 'fixes'. If there
are, it would be good to self NACK them so they don't get accidentally
merged.
Andrew
---
pw-bot: cr