[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200609.130048.1344695073399682276.davem@davemloft.net>
Date: Tue, 09 Jun 2020 13:00:48 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: xiyou.wangcong@...il.com
Cc: netdev@...r.kernel.org,
syzbot+f3a0e80c34b3fc28ac5e@...kaller.appspotmail.com,
ap420073@...il.com, dvyukov@...gle.com
Subject: Re: [Patch net] net: change addr_list_lock back to static key
From: Cong Wang <xiyou.wangcong@...il.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+f3a0e80c34b3fc28ac5e@...kaller.appspotmail.com
> Cc: Taehee Yoo <ap420073@...il.com>
> Cc: Dmitry Vyukov <dvyukov@...gle.com>
> Signed-off-by: Cong Wang <xiyou.wangcong@...il.com>
Ok, let's see how this goes.
Applied, thanks Cong.
Powered by blists - more mailing lists