@@ -28,7 +28,7 @@ static DEFINE_SPINLOCK(simple_ida_lock);
28
28
*/
29
29
int idr_alloc (struct idr * idr , void * ptr , int start , int end , gfp_t gfp )
30
30
{
31
- void * * slot ;
31
+ void __rcu * * slot ;
32
32
struct radix_tree_iter iter ;
33
33
34
34
if (WARN_ON_ONCE (start < 0 ))
@@ -98,7 +98,7 @@ int idr_for_each(const struct idr *idr,
98
98
int (* fn )(int id , void * p , void * data ), void * data )
99
99
{
100
100
struct radix_tree_iter iter ;
101
- void * * slot ;
101
+ void __rcu * * slot ;
102
102
103
103
radix_tree_for_each_slot (slot , & idr -> idr_rt , & iter , 0 ) {
104
104
int ret = fn (iter .index , rcu_dereference_raw (* slot ), data );
@@ -123,7 +123,7 @@ EXPORT_SYMBOL(idr_for_each);
123
123
void * idr_get_next (struct idr * idr , int * nextid )
124
124
{
125
125
struct radix_tree_iter iter ;
126
- void * * slot ;
126
+ void __rcu * * slot ;
127
127
128
128
slot = radix_tree_iter_find (& idr -> idr_rt , & iter , * nextid );
129
129
if (!slot )
@@ -151,7 +151,7 @@ EXPORT_SYMBOL(idr_get_next);
151
151
void * idr_replace (struct idr * idr , void * ptr , int id )
152
152
{
153
153
struct radix_tree_node * node ;
154
- void * * slot = NULL ;
154
+ void __rcu * * slot = NULL ;
155
155
void * entry ;
156
156
157
157
if (WARN_ON_ONCE (id < 0 ))
@@ -250,7 +250,7 @@ EXPORT_SYMBOL(idr_replace);
250
250
int ida_get_new_above (struct ida * ida , int start , int * id )
251
251
{
252
252
struct radix_tree_root * root = & ida -> ida_rt ;
253
- void * * slot ;
253
+ void __rcu * * slot ;
254
254
struct radix_tree_iter iter ;
255
255
struct ida_bitmap * bitmap ;
256
256
unsigned long index ;
@@ -350,7 +350,7 @@ void ida_remove(struct ida *ida, int id)
350
350
struct ida_bitmap * bitmap ;
351
351
unsigned long * btmp ;
352
352
struct radix_tree_iter iter ;
353
- void * * slot ;
353
+ void __rcu * * slot ;
354
354
355
355
slot = radix_tree_iter_lookup (& ida -> ida_rt , & iter , index );
356
356
if (!slot )
@@ -396,7 +396,7 @@ EXPORT_SYMBOL(ida_remove);
396
396
void ida_destroy (struct ida * ida )
397
397
{
398
398
struct radix_tree_iter iter ;
399
- void * * slot ;
399
+ void __rcu * * slot ;
400
400
401
401
radix_tree_for_each_slot (slot , & ida -> ida_rt , & iter , 0 ) {
402
402
struct ida_bitmap * bitmap = rcu_dereference_raw (* slot );
0 commit comments