2020-02-21 16:27:35

by Madhuparna Bhowmik

[permalink] [raw]
Subject: [PATCH] ipv6: xfrm6_tunnel.c: Use built-in RCU list checking

From: Madhuparna Bhowmik <[email protected]>

hlist_for_each_entry_rcu() has built-in RCU and lock checking.

Pass cond argument to list_for_each_entry_rcu() to silence
false lockdep warning when CONFIG_PROVE_RCU_LIST is enabled
by default.

Signed-off-by: Madhuparna Bhowmik <[email protected]>
---
net/ipv6/xfrm6_tunnel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c
index e11bdb0aaa15..25b7ebda2fab 100644
--- a/net/ipv6/xfrm6_tunnel.c
+++ b/net/ipv6/xfrm6_tunnel.c
@@ -78,7 +78,7 @@ static struct xfrm6_tunnel_spi *__xfrm6_tunnel_spi_lookup(struct net *net, const

hlist_for_each_entry_rcu(x6spi,
&xfrm6_tn->spi_byaddr[xfrm6_tunnel_spi_hash_byaddr(saddr)],
- list_byaddr) {
+ list_byaddr, lockdep_is_held(&xfrm6_tunnel_spi_lock)) {
if (xfrm6_addr_equal(&x6spi->addr, saddr))
return x6spi;
}
--
2.17.1


2020-02-28 10:02:46

by Steffen Klassert

[permalink] [raw]
Subject: Re: [PATCH] ipv6: xfrm6_tunnel.c: Use built-in RCU list checking

On Fri, Feb 21, 2020 at 09:54:47PM +0530, [email protected] wrote:
> From: Madhuparna Bhowmik <[email protected]>
>
> hlist_for_each_entry_rcu() has built-in RCU and lock checking.
>
> Pass cond argument to list_for_each_entry_rcu() to silence
> false lockdep warning when CONFIG_PROVE_RCU_LIST is enabled
> by default.
>
> Signed-off-by: Madhuparna Bhowmik <[email protected]>

Applied, thanks!