aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/netdevsim/netdev.c
diff options
context:
space:
mode:
authorJiri Pirko <jiri@mellanox.com>2019-04-25 15:59:41 +0200
committerDavid S. Miller <davem@davemloft.net>2019-04-26 01:52:02 -0400
commit1daf36c0dbc059cdef1a1c11e83599c972832d1d (patch)
tree28ff698168899d10660a8bcf96f114fa7640d7e0 /drivers/net/netdevsim/netdev.c
parentMerge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next (diff)
downloadlinux-dev-1daf36c0dbc059cdef1a1c11e83599c972832d1d.tar.xz
linux-dev-1daf36c0dbc059cdef1a1c11e83599c972832d1d.zip
netdevsim: move device registration on bus to be done earlier in init
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>
Diffstat (limited to '')
-rw-r--r--drivers/net/netdevsim/netdev.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 7805fa840383..6ac5447bca02 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -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;