Instead of holding RTNL for an arbitrary amount of time,
call register_netdev() for each dummy device created
at module loading time.
Tested:
modprobe dummy numdummies=10000
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260427091016.737015-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
return -ENOMEM;
dev_dummy->rtnl_link_ops = &dummy_link_ops;
- err = register_netdevice(dev_dummy);
+ err = register_netdev(dev_dummy);
if (err < 0)
goto err;
return 0;
if (err < 0)
return err;
- rtnl_net_lock(&init_net);
-
for (i = 0; i < numdummies && !err; i++) {
err = dummy_init_one();
cond_resched();
}
- rtnl_net_unlock(&init_net);
-
if (err < 0)
rtnl_link_unregister(&dummy_link_ops);