Re: [PATCH] net: core: devlink.c: Use built-in RCU list checking
From: Madhuparna Bhowmik <hidden>
Date: 2020-02-21 18:00:29
Also in:
linux-kernel-mentees, lkml
From: Madhuparna Bhowmik <hidden>
Date: 2020-02-21 18:00:29
Also in:
linux-kernel-mentees, lkml
On Fri, Feb 21, 2020 at 06:54:36PM +0100, Jiri Pirko wrote:
Fri, Feb 21, 2020 at 06:35:34PM CET, madhuparnabhowmik10@gmail.com wrote:quoted
On Fri, Feb 21, 2020 at 06:20:08PM +0100, Jiri Pirko wrote:quoted
Fri, Feb 21, 2020 at 05:51:41PM CET, madhuparnabhowmik10@gmail.com wrote:quoted
From: Madhuparna Bhowmik <redacted> 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 <redacted>Reviewed-by: Jiri Pirko <redacted> Thanks. However, there is a callpath where not devlink lock neither rcu read is taken: devlink_dpipe_table_register()->devlink_dpipe_table_find()Hi, Yes I had noticed this, but I was not sure if there is some other lock which is being used. If yes, then can you please tell me which lock is held in this case, and I can add that condition as well to list_for_each_entry_rcu() usage. And if no lock or rcu_read_lock is held then may be we should use rcu_read_lock/unlock here. Let me know what you think about this.devlink->lock should be held since the beginning of devlink_dpipe_table_register()
Alright, I will send a patch with this change soon. Thank you for the help. Regards, Madhuparna