From: Eric Dumazet Date: Mon, 27 Apr 2026 09:10:16 +0000 (+0000) Subject: net: dummy: do not acquire RTNL for too long X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=bed510e44095903ec3430861f18f7d7d30d30dc4;p=thirdparty%2Fkernel%2Flinux.git net: dummy: do not acquire RTNL for too long 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 Link: https://patch.msgid.link/20260427091016.737015-1-edumazet@google.com Signed-off-by: Jakub Kicinski --- diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c index f8a4eb365c3d0..f6732eab5923f 100644 --- a/drivers/net/dummy.c +++ b/drivers/net/dummy.c @@ -158,7 +158,7 @@ static int __init dummy_init_one(void) 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; @@ -176,15 +176,11 @@ static int __init dummy_init_module(void) 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);