OSDN Git Service

netdevsim: move device registration on bus to be done earlier in init
authorJiri Pirko <jiri@mellanox.com>
Thu, 25 Apr 2019 13:59:41 +0000 (15:59 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Apr 2019 05:52:02 +0000 (01:52 -0400)
As a dependency of the subsequent patch, mode device registration to be
done earlier, directly in nsim_newlink().

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/netdevsim/netdev.c

index 7805fa8..6ac5447 100644 (file)
@@ -174,25 +174,14 @@ static int nsim_init(struct net_device *dev)
        if (err)
                goto err_debugfs_destroy;
 
-       ns->dev.id = nsim_dev_id++;
-       ns->dev.bus = &nsim_bus;
-       ns->dev.type = &nsim_dev_type;
-       err = device_register(&ns->dev);
-       if (err)
-               goto err_bpf_uninit;
-
-       SET_NETDEV_DEV(dev, &ns->dev);
-
        err = nsim_devlink_setup(ns);
        if (err)
-               goto err_unreg_dev;
+               goto err_bpf_uninit;
 
        nsim_ipsec_init(ns);
 
        return 0;
 
-err_unreg_dev:
-       device_unregister(&ns->dev);
 err_bpf_uninit:
        nsim_bpf_uninit(ns);
 err_debugfs_destroy:
@@ -514,11 +503,22 @@ static int nsim_newlink(struct net *src_net, struct net_device *dev,
        if (IS_ERR(ns->sdev))
                return PTR_ERR(ns->sdev);
 
-       err = register_netdevice(dev);
+       ns->dev.id = nsim_dev_id++;
+       ns->dev.bus = &nsim_bus;
+       ns->dev.type = &nsim_dev_type;
+       err = device_register(&ns->dev);
        if (err)
                goto err_sdev_put;
+
+       SET_NETDEV_DEV(dev, &ns->dev);
+
+       err = register_netdevice(dev);
+       if (err)
+               goto err_unreg_dev;
        return 0;
 
+err_unreg_dev:
+       device_unregister(&ns->dev);
 err_sdev_put:
        nsim_sdev_put(ns->sdev);
        return err;