OSDN Git Service

bonding: remove useless stats_lock_key
authorCong Wang <xiyou.wangcong@gmail.com>
Sun, 3 May 2020 05:22:20 +0000 (22:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 4 May 2020 19:05:56 +0000 (12:05 -0700)
After commit b3e80d44f5b1
("bonding: fix lockdep warning in bond_get_stats()") the dynamic
key is no longer necessary, as we compute nest level at run-time.
So, we can just remove it to save some lockdep key entries.

Test commands:
 ip link add bond0 type bond
 ip link add bond1 type bond
 ip link set bond0 master bond1
 ip link set bond0 nomaster
 ip link set bond1 master bond0

Reported-and-tested-by: syzbot+aaa6fa4949cc5d9b7b25@syzkaller.appspotmail.com
Cc: Dmitry Vyukov <dvyukov@google.com>
Acked-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bonding/bond_main.c
include/net/bonding.h

index d018713..baa9319 100644 (file)
@@ -4491,7 +4491,6 @@ static void bond_uninit(struct net_device *bond_dev)
 
        list_del(&bond->bond_list);
 
-       lockdep_unregister_key(&bond->stats_lock_key);
        bond_debug_unregister(bond);
 }
 
@@ -4896,8 +4895,6 @@ static int bond_init(struct net_device *bond_dev)
                return -ENOMEM;
 
        spin_lock_init(&bond->stats_lock);
-       lockdep_register_key(&bond->stats_lock_key);
-       lockdep_set_class(&bond->stats_lock, &bond->stats_lock_key);
        netdev_lockdep_set_classes(bond_dev);
 
        list_add_tail(&bond->bond_list, &bn->dev_list);
index dc2ce31..0b696da 100644 (file)
@@ -237,7 +237,6 @@ struct bonding {
        struct   dentry *debug_dir;
 #endif /* CONFIG_DEBUG_FS */
        struct rtnl_link_stats64 bond_stats;
-       struct lock_class_key stats_lock_key;
 };
 
 #define bond_slave_get_rcu(dev) \