]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
xtensa: iss/network: provide release() callback
authorMax Filippov <jcmvbkbc@gmail.com>
Thu, 7 Jul 2022 07:23:16 +0000 (00:23 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:41:47 +0000 (14:41 +0200)
[ 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

index be3aaaad8bee0ee61c8756aa7c25dae043e09f28..24f162bd5874912c6f2b0bebdebebdbb1d6183ce 100644 (file)
@@ -503,6 +503,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;
@@ -559,6 +568,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);