X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=kernel%2Fworkqueue.c;h=55fac5b991b768ef059a783fb2a85d7521154e60;hb=8024206dbf4e0701f0cdf259a122ea23db3a7a16;hp=81f2457811eb346915b8c17e4ce5ed44a5de8c10;hpb=d381f45c890a3fb136afb0dc1cbe025e066cb981;p=cascardo%2Flinux.git diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 81f2457811eb..55fac5b991b7 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -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; } /*