net: net_netdev: Fix error handling in ntb_netdev_init_module()
authorYuan Can <yuancan@huawei.com>
Thu, 24 Nov 2022 07:09:17 +0000 (07:09 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Nov 2022 11:07:13 +0000 (11:07 +0000)
The ntb_netdev_init_module() returns the ntb_transport_register_client()
directly without checking its return value, if
ntb_transport_register_client() failed, the NTB client device is not
unregistered.

Fix by unregister NTB client device when ntb_transport_register_client()
failed.

Fixes: 548c237c0a99 ("net: Add support for NTB virtual ethernet device")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ntb_netdev.c

index 464d88c..a4abea9 100644 (file)
@@ -484,7 +484,14 @@ static int __init ntb_netdev_init_module(void)
        rc = ntb_transport_register_client_dev(KBUILD_MODNAME);
        if (rc)
                return rc;
-       return ntb_transport_register_client(&ntb_netdev_client);
+
+       rc = ntb_transport_register_client(&ntb_netdev_client);
+       if (rc) {
+               ntb_transport_unregister_client_dev(KBUILD_MODNAME);
+               return rc;
+       }
+
+       return 0;
 }
 module_init(ntb_netdev_init_module);