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

Commit 202373a8 authored by Sean Anderson's avatar Sean Anderson Committed by Greg Kroah-Hartman
Browse files

net: fman: Unregister ethernet device on removal



[ Upstream commit b7cbc6740bd6ad5d43345a2504f7e4beff0d709f ]

When the mac device gets removed, it leaves behind the ethernet device.
This will result in a segfault next time the ethernet device accesses
mac_dev. Remove the ethernet device when we get removed to prevent
this. This is not completely reversible, since some resources aren't
cleaned up properly, but that can be addressed later.

Fixes: 39339616 ("fsl/fman: Add FMan MAC driver")
Signed-off-by: default avatarSean Anderson <sean.anderson@seco.com>
Link: https://lore.kernel.org/r/20221103182831.2248833-1-sean.anderson@seco.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 5a067a8e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -953,12 +953,21 @@ static int mac_probe(struct platform_device *_of_dev)
	return err;
}

static int mac_remove(struct platform_device *pdev)
{
	struct mac_device *mac_dev = platform_get_drvdata(pdev);

	platform_device_unregister(mac_dev->priv->eth_dev);
	return 0;
}

static struct platform_driver mac_driver = {
	.driver = {
		.name		= KBUILD_MODNAME,
		.of_match_table	= mac_match,
	},
	.probe		= mac_probe,
	.remove		= mac_remove,
};

builtin_platform_driver(mac_driver);