Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-13 Thread Stephen Rothwell
Hi all, On Tue, 12 May 2020 10:47:05 +0530 Madhuparna Bhowmik wrote: > > > > I think what is happening is this: > > > > ipmr_net_init() -> ipmr_rules_init() -> ipmr_new_table() > > > > ipmr_new_table() returns an existing table if there is one, but > > obviously none can exist at init. So a

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-12 Thread Madhuparna Bhowmik
On Tue, May 12, 2020 at 09:32:31AM -0700, Jakub Kicinski wrote: > On Tue, 12 May 2020 10:47:05 +0530 Madhuparna Bhowmik wrote: > > > > #ifdef CONFIG_IP_MROUTE_MULTIPLE_TABLES > > > > -#define ipmr_for_each_table(mrt, net) \ > > > > - list_for_each_entry_rcu(mrt, >ipv4.mr_tables, list, \ > >

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-12 Thread Jakub Kicinski
On Tue, 12 May 2020 22:47:10 +0530 Amol Grover wrote: > > > This is a strange condition, IMHO. How can we be fine with either > > > lock.. This is supposed to be the writer side lock, one can't have > > > two writer side locks.. > > > > > > I think what is happening is this: > > > > > >

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-12 Thread Amol Grover
On Tue, May 12, 2020 at 10:47:05AM +0530, Madhuparna Bhowmik wrote: > On Sat, May 09, 2020 at 02:19:38PM -0700, Jakub Kicinski wrote: > > On Sat, 9 May 2020 12:52:44 +0530 Amol Grover wrote: > > > ipmr_for_each_table() uses list_for_each_entry_rcu() for > > > traversing outside of an RCU

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-12 Thread Jakub Kicinski
On Tue, 12 May 2020 10:47:05 +0530 Madhuparna Bhowmik wrote: > > > #ifdef CONFIG_IP_MROUTE_MULTIPLE_TABLES > > > -#define ipmr_for_each_table(mrt, net) \ > > > - list_for_each_entry_rcu(mrt, >ipv4.mr_tables, list, \ > > > - lockdep_rtnl_is_held()) > > > +#define

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-11 Thread Madhuparna Bhowmik
On Sat, May 09, 2020 at 02:19:38PM -0700, Jakub Kicinski wrote: > On Sat, 9 May 2020 12:52:44 +0530 Amol Grover wrote: > > ipmr_for_each_table() uses list_for_each_entry_rcu() for > > traversing outside of an RCU read-side critical section but > > under the protection of pernet_ops_rwsem. Hence

Re: [PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-09 Thread Jakub Kicinski
On Sat, 9 May 2020 12:52:44 +0530 Amol Grover wrote: > ipmr_for_each_table() uses list_for_each_entry_rcu() for > traversing outside of an RCU read-side critical section but > under the protection of pernet_ops_rwsem. Hence add the > corresponding lockdep expression to silence the following >

[PATCH net 2/2 RESEND] ipmr: Add lockdep expression to ipmr_for_each_table macro

2020-05-09 Thread Amol Grover
ipmr_for_each_table() uses list_for_each_entry_rcu() for traversing outside of an RCU read-side critical section but under the protection of pernet_ops_rwsem. Hence add the corresponding lockdep expression to silence the following false-positive warning at boot: [0.645292]