*/
int idr_alloc(struct idr *idr, void *ptr, int start, int end, gfp_t gfp)
{
- void **slot;
+ void __rcu **slot;
struct radix_tree_iter iter;
if (WARN_ON_ONCE(start < 0))
int (*fn)(int id, void *p, void *data), void *data)
{
struct radix_tree_iter iter;
- void **slot;
+ void __rcu **slot;
radix_tree_for_each_slot(slot, &idr->idr_rt, &iter, 0) {
int ret = fn(iter.index, rcu_dereference_raw(*slot), data);
void *idr_get_next(struct idr *idr, int *nextid)
{
struct radix_tree_iter iter;
- void **slot;
+ void __rcu **slot;
slot = radix_tree_iter_find(&idr->idr_rt, &iter, *nextid);
if (!slot)
void *idr_replace(struct idr *idr, void *ptr, int id)
{
struct radix_tree_node *node;
- void **slot = NULL;
+ void __rcu **slot = NULL;
void *entry;
if (WARN_ON_ONCE(id < 0))
int ida_get_new_above(struct ida *ida, int start, int *id)
{
struct radix_tree_root *root = &ida->ida_rt;
- void **slot;
+ void __rcu **slot;
struct radix_tree_iter iter;
struct ida_bitmap *bitmap;
unsigned long index;
struct ida_bitmap *bitmap;
unsigned long *btmp;
struct radix_tree_iter iter;
- void **slot;
+ void __rcu **slot;
slot = radix_tree_iter_lookup(&ida->ida_rt, &iter, index);
if (!slot)
void ida_destroy(struct ida *ida)
{
struct radix_tree_iter iter;
- void **slot;
+ void __rcu **slot;
radix_tree_for_each_slot(slot, &ida->ida_rt, &iter, 0) {
struct ida_bitmap *bitmap = rcu_dereference_raw(*slot);