]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: dummy: do not acquire RTNL for too long
authorEric Dumazet <edumazet@google.com>
Mon, 27 Apr 2026 09:10:16 +0000 (09:10 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 29 Apr 2026 00:45:21 +0000 (17:45 -0700)
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>
drivers/net/dummy.c

index f8a4eb365c3d068399c7af9305785aea1a5a7aac..f6732eab5923f02d0164f2a47258b87740f8c593 100644 (file)
@@ -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);