|
@@ -457,11 +457,12 @@ static int worker_pool_assign_id(struct worker_pool *pool)
|
|
|
int ret;
|
|
|
|
|
|
mutex_lock(&worker_pool_idr_mutex);
|
|
|
- idr_pre_get(&worker_pool_idr, GFP_KERNEL);
|
|
|
- ret = idr_get_new(&worker_pool_idr, pool, &pool->id);
|
|
|
+ ret = idr_alloc(&worker_pool_idr, pool, 0, 0, GFP_KERNEL);
|
|
|
+ if (ret >= 0)
|
|
|
+ pool->id = ret;
|
|
|
mutex_unlock(&worker_pool_idr_mutex);
|
|
|
|
|
|
- return ret;
|
|
|
+ return ret < 0 ? ret : 0;
|
|
|
}
|
|
|
|
|
|
/*
|