Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b99620a authored by Oleksij Rempel's avatar Oleksij Rempel Committed by Greg Kroah-Hartman
Browse files

net: usb: lan78xx: Fix memory leak on device unplug by freeing PHY device



[ Upstream commit ae7370e61c5d8f5bcefc2d4fca724bd4e9bbf789 ]

Add calls to `phy_device_free` after `fixed_phy_unregister` to fix a
memory leak that occurs when the device is unplugged. This ensures
proper cleanup of pseudo fixed-link PHYs.

Fixes: 89b36fb5 ("lan78xx: Lan7801 Support for Fixed PHY")
Cc: Raghuram Chary J <raghuramchary.jallipalli@microchip.com>
Signed-off-by: default avatarOleksij Rempel <o.rempel@pengutronix.de>
Link: https://patch.msgid.link/20241116130558.1352230-2-o.rempel@pengutronix.de


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent c423afa1
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -2165,6 +2165,7 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
		if (dev->chipid == ID_REV_CHIP_ID_7801_) {
			if (phy_is_pseudo_fixed_link(phydev)) {
				fixed_phy_unregister(phydev);
				phy_device_free(phydev);
			} else {
				phy_unregister_fixup_for_uid(PHY_KSZ9031RNX,
							     0xfffffff0);
@@ -3843,8 +3844,10 @@ static void lan78xx_disconnect(struct usb_interface *intf)

	phy_disconnect(net->phydev);

	if (phy_is_pseudo_fixed_link(phydev))
	if (phy_is_pseudo_fixed_link(phydev)) {
		fixed_phy_unregister(phydev);
		phy_device_free(phydev);
	}

	unregister_netdev(net);