blob: db820ea50ac6846983f217e2553231a1baf64b43 [file] [log] [blame]
developer7e32f7e2022-05-18 21:10:08 +08001From be74294ffa24f5fbc0d6643842e3e095447e17a2 Mon Sep 17 00:00:00 2001
2From: Cong Wang <xiyou.wangcong@gmail.com>
3Date: Fri, 26 Jun 2020 11:24:22 -0700
4Subject: net: get rid of lockdep_set_class_and_subclass()
5
6lockdep_set_class_and_subclass() is meant to reduce
7the _nested() annotations by assigning a default subclass.
8For addr_list_lock, we have to compute the subclass at
9run-time as the netdevice topology changes after creation.
10
11So, we should just get rid of these
12lockdep_set_class_and_subclass() and stick with our _nested()
13annotations.
14
15Fixes: 845e0ebb4408 ("net: change addr_list_lock back to static key")
16Suggested-by: Taehee Yoo <ap420073@gmail.com>
17Cc: Dmitry Vyukov <dvyukov@google.com>
18Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
19Signed-off-by: David S. Miller <davem@davemloft.net>
20---
21 drivers/net/macsec.c | 5 ++---
22 drivers/net/macvlan.c | 5 ++---
23 net/8021q/vlan_dev.c | 9 ++++-----
24 3 files changed, 8 insertions(+), 11 deletions(-)
25
26diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c
27index e56547bfdac9a..9159846b8b938 100644
28--- a/drivers/net/macsec.c
29+++ b/drivers/net/macsec.c
30@@ -4052,9 +4052,8 @@ static int macsec_newlink(struct net *net, struct net_device *dev,
31 return err;
32
33 netdev_lockdep_set_classes(dev);
34- lockdep_set_class_and_subclass(&dev->addr_list_lock,
35- &macsec_netdev_addr_lock_key,
36- dev->lower_level);
37+ lockdep_set_class(&dev->addr_list_lock,
38+ &macsec_netdev_addr_lock_key);
39
40 err = netdev_upper_dev_link(real_dev, dev, extack);
41 if (err < 0)
42diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
43index 6a6cc9f753075..4942f6112e51f 100644
44--- a/drivers/net/macvlan.c
45+++ b/drivers/net/macvlan.c
46@@ -880,9 +880,8 @@ static struct lock_class_key macvlan_netdev_addr_lock_key;
47 static void macvlan_set_lockdep_class(struct net_device *dev)
48 {
49 netdev_lockdep_set_classes(dev);
50- lockdep_set_class_and_subclass(&dev->addr_list_lock,
51- &macvlan_netdev_addr_lock_key,
52- dev->lower_level);
53+ lockdep_set_class(&dev->addr_list_lock,
54+ &macvlan_netdev_addr_lock_key);
55 }
56
57 static int macvlan_init(struct net_device *dev)
58diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
59index c8d6a07e23c57..3dd7c972677be 100644
60--- a/net/8021q/vlan_dev.c
61+++ b/net/8021q/vlan_dev.c
62@@ -503,11 +503,10 @@ static void vlan_dev_set_lockdep_one(struct net_device *dev,
63 lockdep_set_class(&txq->_xmit_lock, &vlan_netdev_xmit_lock_key);
64 }
65
66-static void vlan_dev_set_lockdep_class(struct net_device *dev, int subclass)
67+static void vlan_dev_set_lockdep_class(struct net_device *dev)
68 {
69- lockdep_set_class_and_subclass(&dev->addr_list_lock,
70- &vlan_netdev_addr_lock_key,
71- subclass);
72+ lockdep_set_class(&dev->addr_list_lock,
73+ &vlan_netdev_addr_lock_key);
74 netdev_for_each_tx_queue(dev, vlan_dev_set_lockdep_one, NULL);
75 }
76
77@@ -601,7 +600,7 @@ static int vlan_dev_init(struct net_device *dev)
78
79 SET_NETDEV_DEVTYPE(dev, &vlan_type);
80
81- vlan_dev_set_lockdep_class(dev, dev->lower_level);
82+ vlan_dev_set_lockdep_class(dev);
83
84 vlan->vlan_pcpu_stats = netdev_alloc_pcpu_stats(struct vlan_pcpu_stats);
85 if (!vlan->vlan_pcpu_stats)
86--
87cgit 1.2.3-1.el7
88