| From be74294ffa24f5fbc0d6643842e3e095447e17a2 Mon Sep 17 00:00:00 2001 |
| From: Cong Wang <xiyou.wangcong@gmail.com> |
| Date: Fri, 26 Jun 2020 11:24:22 -0700 |
| Subject: net: get rid of lockdep_set_class_and_subclass() |
| |
| lockdep_set_class_and_subclass() is meant to reduce |
| the _nested() annotations by assigning a default subclass. |
| For addr_list_lock, we have to compute the subclass at |
| run-time as the netdevice topology changes after creation. |
| |
| So, we should just get rid of these |
| lockdep_set_class_and_subclass() and stick with our _nested() |
| annotations. |
| |
| Fixes: 845e0ebb4408 ("net: change addr_list_lock back to static key") |
| Suggested-by: Taehee Yoo <ap420073@gmail.com> |
| Cc: Dmitry Vyukov <dvyukov@google.com> |
| Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| --- |
| drivers/net/macsec.c | 5 ++--- |
| drivers/net/macvlan.c | 5 ++--- |
| net/8021q/vlan_dev.c | 9 ++++----- |
| 3 files changed, 8 insertions(+), 11 deletions(-) |
| |
| diff --git a/drivers/net/macsec.c b/drivers/net/macsec.c |
| index e56547bfdac9a..9159846b8b938 100644 |
| --- a/drivers/net/macsec.c |
| +++ b/drivers/net/macsec.c |
| @@ -4052,9 +4052,8 @@ static int macsec_newlink(struct net *net, struct net_device *dev, |
| return err; |
| |
| netdev_lockdep_set_classes(dev); |
| - lockdep_set_class_and_subclass(&dev->addr_list_lock, |
| - &macsec_netdev_addr_lock_key, |
| - dev->lower_level); |
| + lockdep_set_class(&dev->addr_list_lock, |
| + &macsec_netdev_addr_lock_key); |
| |
| err = netdev_upper_dev_link(real_dev, dev, extack); |
| if (err < 0) |
| diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c |
| index 6a6cc9f753075..4942f6112e51f 100644 |
| --- a/drivers/net/macvlan.c |
| +++ b/drivers/net/macvlan.c |
| @@ -880,9 +880,8 @@ static struct lock_class_key macvlan_netdev_addr_lock_key; |
| static void macvlan_set_lockdep_class(struct net_device *dev) |
| { |
| netdev_lockdep_set_classes(dev); |
| - lockdep_set_class_and_subclass(&dev->addr_list_lock, |
| - &macvlan_netdev_addr_lock_key, |
| - dev->lower_level); |
| + lockdep_set_class(&dev->addr_list_lock, |
| + &macvlan_netdev_addr_lock_key); |
| } |
| |
| static int macvlan_init(struct net_device *dev) |
| diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c |
| index c8d6a07e23c57..3dd7c972677be 100644 |
| --- a/net/8021q/vlan_dev.c |
| +++ b/net/8021q/vlan_dev.c |
| @@ -503,11 +503,10 @@ static void vlan_dev_set_lockdep_one(struct net_device *dev, |
| lockdep_set_class(&txq->_xmit_lock, &vlan_netdev_xmit_lock_key); |
| } |
| |
| -static void vlan_dev_set_lockdep_class(struct net_device *dev, int subclass) |
| +static void vlan_dev_set_lockdep_class(struct net_device *dev) |
| { |
| - lockdep_set_class_and_subclass(&dev->addr_list_lock, |
| - &vlan_netdev_addr_lock_key, |
| - subclass); |
| + lockdep_set_class(&dev->addr_list_lock, |
| + &vlan_netdev_addr_lock_key); |
| netdev_for_each_tx_queue(dev, vlan_dev_set_lockdep_one, NULL); |
| } |
| |
| @@ -601,7 +600,7 @@ static int vlan_dev_init(struct net_device *dev) |
| |
| SET_NETDEV_DEVTYPE(dev, &vlan_type); |
| |
| - vlan_dev_set_lockdep_class(dev, dev->lower_level); |
| + vlan_dev_set_lockdep_class(dev); |
| |
| vlan->vlan_pcpu_stats = netdev_alloc_pcpu_stats(struct vlan_pcpu_stats); |
| if (!vlan->vlan_pcpu_stats) |
| -- |
| cgit 1.2.3-1.el7 |
| |