Message ID | 20200117133048.31708-1-frextrite@gmail.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | feec214afb53f17554c9c0c85f72de709b7ba3e4 |
Headers | show |
Series | [v2] drivers: soc: ti: knav_qmss_queue: Pass lockdep expression to RCU lists | expand |
On 1/17/20 5:30 AM, Amol Grover wrote: > inst->handles is traversed using list_for_each_entry_rcu > outside an RCU read-side critical section but under the protection > of knav_dev_lock. > > Hence, add corresponding lockdep expression to silence false-positive > lockdep warnings, and harden RCU lists. > > Add macro for the corresponding lockdep expression. > > Signed-off-by: Amol Grover <frextrite@gmail.com> > --- > v2: > - Remove rcu_read_lock_held() from lockdep expression since it is > implicitly checked for. > Looks fine to me. Hi Olof, Arnd, Can you please pick this one and apply to your driver-soc branch ? I already sent out pull request and hence the request. regards, Santosh
On Fri, Jan 17, 2020 at 10:24:04AM -0800, santosh.shilimkar@oracle.com wrote: > On 1/17/20 5:30 AM, Amol Grover wrote: > > inst->handles is traversed using list_for_each_entry_rcu > > outside an RCU read-side critical section but under the protection > > of knav_dev_lock. > > > > Hence, add corresponding lockdep expression to silence false-positive > > lockdep warnings, and harden RCU lists. > > > > Add macro for the corresponding lockdep expression. > > > > Signed-off-by: Amol Grover <frextrite@gmail.com> > > --- > > v2: > > - Remove rcu_read_lock_held() from lockdep expression since it is > > implicitly checked for. > > > Looks fine to me. > > Hi Olof, Arnd, > Can you please pick this one and apply to your driver-soc branch ? > I already sent out pull request and hence the request. Hi, Can you please email the whole patch with sign-off to soc@kernel.org? Otherwise it won't end up in patchwork, which is how we track patches and pull requests these days. Thanks, -Olof
On Fri, Jan 17, 2020 at 11:25:55AM -0800, Olof Johansson wrote: > On Fri, Jan 17, 2020 at 10:24:04AM -0800, santosh.shilimkar@oracle.com wrote: > > On 1/17/20 5:30 AM, Amol Grover wrote: > > > inst->handles is traversed using list_for_each_entry_rcu > > > outside an RCU read-side critical section but under the protection > > > of knav_dev_lock. > > > > > > Hence, add corresponding lockdep expression to silence false-positive > > > lockdep warnings, and harden RCU lists. > > > > > > Add macro for the corresponding lockdep expression. > > > > > > Signed-off-by: Amol Grover <frextrite@gmail.com> > > > --- > > > v2: > > > - Remove rcu_read_lock_held() from lockdep expression since it is > > > implicitly checked for. > > > > > Looks fine to me. > > > > Hi Olof, Arnd, > > Can you please pick this one and apply to your driver-soc branch ? > > I already sent out pull request and hence the request. > > Hi, > > Can you please email the whole patch with sign-off to > soc@kernel.org? Otherwise it won't end up in patchwork, which is how we track > patches and pull requests these days. > Thank you Santosh and Olof. I'm resending the patch to soc@kernel.org as well. Thanks Amol > > Thanks, > > -Olof
diff --git a/drivers/soc/ti/knav_qmss_queue.c b/drivers/soc/ti/knav_qmss_queue.c index 1ccc9064e1eb..37f3db6c041c 100644 --- a/drivers/soc/ti/knav_qmss_queue.c +++ b/drivers/soc/ti/knav_qmss_queue.c @@ -25,6 +25,8 @@ static struct knav_device *kdev; static DEFINE_MUTEX(knav_dev_lock); +#define knav_dev_lock_held() \ + lockdep_is_held(&knav_dev_lock) /* Queue manager register indices in DTS */ #define KNAV_QUEUE_PEEK_REG_INDEX 0 @@ -52,8 +54,9 @@ static DEFINE_MUTEX(knav_dev_lock); #define knav_queue_idx_to_inst(kdev, idx) \ (kdev->instances + (idx << kdev->inst_shift)) -#define for_each_handle_rcu(qh, inst) \ - list_for_each_entry_rcu(qh, &inst->handles, list) +#define for_each_handle_rcu(qh, inst) \ + list_for_each_entry_rcu(qh, &inst->handles, list, \ + knav_dev_lock_held()) #define for_each_instance(idx, inst, kdev) \ for (idx = 0, inst = kdev->instances; \
inst->handles is traversed using list_for_each_entry_rcu outside an RCU read-side critical section but under the protection of knav_dev_lock. Hence, add corresponding lockdep expression to silence false-positive lockdep warnings, and harden RCU lists. Add macro for the corresponding lockdep expression. Signed-off-by: Amol Grover <frextrite@gmail.com> --- v2: - Remove rcu_read_lock_held() from lockdep expression since it is implicitly checked for. drivers/soc/ti/knav_qmss_queue.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)