From: Cong Wang <xiyou.wangc...@gmail.com> Date: Mon, 8 Jun 2020 14:53:01 -0700
> The dynamic key update for addr_list_lock still causes troubles, > for example the following race condition still exists: > > CPU 0: CPU 1: > (RCU read lock) (RTNL lock) > dev_mc_seq_show() netdev_update_lockdep_key() > -> lockdep_unregister_key() > -> netif_addr_lock_bh() > > because lockdep doesn't provide an API to update it atomically. > Therefore, we have to move it back to static keys and use subclass > for nest locking like before. > > In commit 1a33e10e4a95 ("net: partially revert dynamic lockdep key > changes"), I already reverted most parts of commit ab92d68fc22f > ("net: core: add generic lockdep keys"). > > This patch reverts the rest and also part of commit f3b0a18bb6cb > ("net: remove unnecessary variables and callback"). After this > patch, addr_list_lock changes back to using static keys and > subclasses to satisfy lockdep. Thanks to dev->lower_level, we do > not have to change back to ->ndo_get_lock_subclass(). > > And hopefully this reduces some syzbot lockdep noises too. > > Reported-by: syzbot+f3a0e80c34b3fc28a...@syzkaller.appspotmail.com > Cc: Taehee Yoo <ap420...@gmail.com> > Cc: Dmitry Vyukov <dvyu...@google.com> > Signed-off-by: Cong Wang <xiyou.wangc...@gmail.com> Ok, let's see how this goes. Applied, thanks Cong.