2020-02-18 19:55:33

by Madhuparna Bhowmik

[permalink] [raw]
Subject: [PATCH 1/4] meter.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/openvswitch/meter.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/openvswitch/meter.c b/net/openvswitch/meter.c
index 3323b79ff548..5010d1ddd4bd 100644
--- a/net/openvswitch/meter.c
+++ b/net/openvswitch/meter.c
@@ -61,7 +61,8 @@ static struct dp_meter *lookup_meter(const struct datapath *dp,
struct hlist_head *head;

head = meter_hash_bucket(dp, meter_id);
- hlist_for_each_entry_rcu(meter, head, dp_hash_node) {
+ hlist_for_each_entry_rcu(meter, head, dp_hash_node,
+ lockdep_ovsl_is_held()) {
if (meter->id == meter_id)
return meter;
}
--
2.17.1


2020-02-18 20:47:06

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 1/4] meter.c: Use built-in RCU list checking

From: [email protected]
Date: Wed, 19 Feb 2020 01:24:25 +0530

> 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.