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
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, &net->ipv4.mr_tables, list, \
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:
> > >
> > > ipmr_net
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 read-side
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, &net->ipv4.mr_tables, list, \
> > > - lockdep_rtnl_is_held())
> > > +#define ipmr_f
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 ad
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
> fals
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]