| From f24ffe2ac8761db919b4f9f1a902f142c8e666d8 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 7 Jul 2022 00:23:16 -0700 |
| Subject: xtensa: iss/network: provide release() callback |
| |
| From: Max Filippov <jcmvbkbc@gmail.com> |
| |
| [ Upstream commit 8864fb8359682912ee99235db7db916733a1fd7b ] |
| |
| Provide release() callback for the platform device embedded into struct |
| iss_net_private and registered in the iss_net_configure so that |
| platform_device_unregister could be called for it. |
| |
| Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/xtensa/platforms/iss/network.c | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| diff --git a/arch/xtensa/platforms/iss/network.c b/arch/xtensa/platforms/iss/network.c |
| index 4986226a5ab2..4801df4e73e1 100644 |
| --- a/arch/xtensa/platforms/iss/network.c |
| +++ b/arch/xtensa/platforms/iss/network.c |
| @@ -502,6 +502,15 @@ static const struct net_device_ops iss_netdev_ops = { |
| .ndo_set_rx_mode = iss_net_set_multicast_list, |
| }; |
| |
| +static void iss_net_pdev_release(struct device *dev) |
| +{ |
| + struct platform_device *pdev = to_platform_device(dev); |
| + struct iss_net_private *lp = |
| + container_of(pdev, struct iss_net_private, pdev); |
| + |
| + free_netdev(lp->dev); |
| +} |
| + |
| static int iss_net_configure(int index, char *init) |
| { |
| struct net_device *dev; |
| @@ -558,6 +567,7 @@ static int iss_net_configure(int index, char *init) |
| |
| lp->pdev.id = index; |
| lp->pdev.name = DRIVER_NAME; |
| + lp->pdev.dev.release = iss_net_pdev_release; |
| platform_device_register(&lp->pdev); |
| SET_NETDEV_DEV(dev, &lp->pdev.dev); |
| |
| -- |
| 2.35.1 |
| |