Commit 94bfa3b6692c7a3f6f119596724204ec975d3ef0

Authored by Paul E. McKenney
1 parent f3b577dec1

idr: fix RCU lockdep splat in idr_get_next()

Convert to rcu_dereference_raw() given that many callers may have many
different locking models.

Located-by: Miles Lane <miles.lane@gmail.com>
Tested-by: Miles Lane <miles.lane@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>

Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff

... ... @@ -602,7 +602,7 @@
602 602 /* find first ent */
603 603 n = idp->layers * IDR_BITS;
604 604 max = 1 << n;
605   - p = rcu_dereference(idp->top);
  605 + p = rcu_dereference_raw(idp->top);
606 606 if (!p)
607 607 return NULL;
608 608  
... ... @@ -610,7 +610,7 @@
610 610 while (n > 0 && p) {
611 611 n -= IDR_BITS;
612 612 *paa++ = p;
613   - p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]);
  613 + p = rcu_dereference_raw(p->ary[(id >> n) & IDR_MASK]);
614 614 }
615 615  
616 616 if (p) {