]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dev: Remove devnet_rename_sem.
authorKuniyuki Iwashima <kuniyu@amazon.com>
Wed, 15 Jan 2025 09:55:44 +0000 (18:55 +0900)
committerJakub Kicinski <kuba@kernel.org>
Fri, 17 Jan 2025 01:20:50 +0000 (17:20 -0800)
devnet_rename_sem is no longer used since commit
0840556e5a3a ("net: Protect dev->name by seqlock.").

Also, RTNL serialises dev_change_name().

Let's remove devnet_rename_sem.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20250115095545.52709-3-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c

index cb6da0cac211917686b889b971143ee669820822..32fcf54b779d0bb242ee07291617df012069d983 100644 (file)
@@ -181,8 +181,6 @@ static DEFINE_SPINLOCK(napi_hash_lock);
 static unsigned int napi_gen_id = NR_CPUS;
 static DEFINE_READ_MOSTLY_HASHTABLE(napi_hash, 8);
 
-static DECLARE_RWSEM(devnet_rename_sem);
-
 static inline void dev_base_seq_inc(struct net *net)
 {
        unsigned int val = net->dev_base_seq + 1;
@@ -1361,12 +1359,8 @@ int dev_change_name(struct net_device *dev, const char *newname)
 
        net = dev_net(dev);
 
-       down_write(&devnet_rename_sem);
-
-       if (strncmp(newname, dev->name, IFNAMSIZ) == 0) {
-               up_write(&devnet_rename_sem);
+       if (!strncmp(newname, dev->name, IFNAMSIZ))
                return 0;
-       }
 
        memcpy(oldname, dev->name, IFNAMSIZ);
 
@@ -1374,10 +1368,8 @@ int dev_change_name(struct net_device *dev, const char *newname)
        err = dev_get_valid_name(net, dev, newname);
        write_sequnlock_bh(&netdev_rename_lock);
 
-       if (err < 0) {
-               up_write(&devnet_rename_sem);
+       if (err < 0)
                return err;
-       }
 
        if (oldname[0] && !strchr(oldname, '%'))
                netdev_info(dev, "renamed from %s%s\n", oldname,
@@ -1393,12 +1385,9 @@ rollback:
                memcpy(dev->name, oldname, IFNAMSIZ);
                write_sequnlock_bh(&netdev_rename_lock);
                WRITE_ONCE(dev->name_assign_type, old_assign_type);
-               up_write(&devnet_rename_sem);
                return ret;
        }
 
-       up_write(&devnet_rename_sem);
-
        netdev_adjacent_rename_links(dev, oldname);
 
        netdev_name_node_del(dev->name_node);
@@ -1414,7 +1403,6 @@ rollback:
                /* err >= 0 after dev_alloc_name() or stores the first errno */
                if (err >= 0) {
                        err = ret;
-                       down_write(&devnet_rename_sem);
                        write_seqlock_bh(&netdev_rename_lock);
                        memcpy(dev->name, oldname, IFNAMSIZ);
                        write_sequnlock_bh(&netdev_rename_lock);