[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <643f9363-9e25-7e13-a5cf-fe189268b445@gmail.com>
Date: Mon, 20 Apr 2020 08:48:36 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Wei Yongjun <weiyongjun1@...wei.com>,
Eric Dumazet <edumazet@...gle.com>,
"Gustavo A. R. Silva" <gustavo@...eddedor.com>,
Taehee Yoo <ap420073@...il.com>,
Richard Cochran <richardcochran@...il.com>
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net-next] macvlan: silence RCU list debugging warning
On 4/20/20 4:59 AM, Wei Yongjun wrote:
> macvlan_hash_lookup() uses list_for_each_entry_rcu() for traversing
> outside of an RCU read side critical section but under the protection
> of rtnl_mutex. Hence, add the corresponding lockdep expression to
> silence the following false-positive warning:
>
This changelog is misleading.
macvlan_hash_lookup() _can_ be used under RCU only, in its fast path.
So you can not claim that it is run with RTNL held.
Please be precise in the changelogs
Thanks.
> =============================
> WARNING: suspicious RCU usage
> 5.7.0-rc1-next-20200416-00003-ga3b8d28bc #1 Not tainted
> -----------------------------
> drivers/net/macvlan.c:126 RCU-list traversed in non-reader section!!
>
> Signed-off-by: Wei Yongjun <weiyongjun1@...wei.com>
> ---
> drivers/net/macvlan.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
> index e7289d67268f..654c1fa11826 100644
> --- a/drivers/net/macvlan.c
> +++ b/drivers/net/macvlan.c
> @@ -123,7 +123,8 @@ static struct macvlan_dev *macvlan_hash_lookup(const struct macvlan_port *port,
> struct macvlan_dev *vlan;
> u32 idx = macvlan_eth_hash(addr);
>
> - hlist_for_each_entry_rcu(vlan, &port->vlan_hash[idx], hlist) {
> + hlist_for_each_entry_rcu(vlan, &port->vlan_hash[idx], hlist,
> + lockdep_rtnl_is_held()) {
> if (ether_addr_equal_64bits(vlan->dev->dev_addr, addr))
> return vlan;
> }
>
Powered by blists - more mailing lists