Message ID | 20200218181718.7258-1-madhuparnabhowmik10@gmail.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | net: netlabel: Use built-in RCU list checking | expand |
From: madhuparnabhowmik10@gmail.com Date: Tue, 18 Feb 2020 23:47:18 +0530 > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com> > > list_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 <madhuparnabhowmik10@gmail.com> Applied.
On Tue, Feb 18, 2020 at 1:17 PM <madhuparnabhowmik10@gmail.com> wrote: > > From: Madhuparna Bhowmik <madhuparnabhowmik10@gmail.com> > > list_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 <madhuparnabhowmik10@gmail.com> > --- > net/netlabel/netlabel_unlabeled.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Not that this has much bearing since it's already been merged, but for what it's worth ... Acked-by: Paul Moore <paul@paul-moore.com> > diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c > index d2e4ab8d1cb1..77bb1bb22c3b 100644 > --- a/net/netlabel/netlabel_unlabeled.c > +++ b/net/netlabel/netlabel_unlabeled.c > @@ -207,7 +207,8 @@ static struct netlbl_unlhsh_iface *netlbl_unlhsh_search_iface(int ifindex) > > bkt = netlbl_unlhsh_hash(ifindex); > bkt_list = &netlbl_unlhsh_rcu_deref(netlbl_unlhsh)->tbl[bkt]; > - list_for_each_entry_rcu(iter, bkt_list, list) > + list_for_each_entry_rcu(iter, bkt_list, list, > + lockdep_is_held(&netlbl_unlhsh_lock)) > if (iter->valid && iter->ifindex == ifindex) > return iter; > > -- > 2.17.1
diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c index d2e4ab8d1cb1..77bb1bb22c3b 100644 --- a/net/netlabel/netlabel_unlabeled.c +++ b/net/netlabel/netlabel_unlabeled.c @@ -207,7 +207,8 @@ static struct netlbl_unlhsh_iface *netlbl_unlhsh_search_iface(int ifindex) bkt = netlbl_unlhsh_hash(ifindex); bkt_list = &netlbl_unlhsh_rcu_deref(netlbl_unlhsh)->tbl[bkt]; - list_for_each_entry_rcu(iter, bkt_list, list) + list_for_each_entry_rcu(iter, bkt_list, list, + lockdep_is_held(&netlbl_unlhsh_lock)) if (iter->valid && iter->ifindex == ifindex) return iter;