X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=kernel%2Fworkqueue.c;h=b48cd597145dd007b503d22755c481256f48867e;hb=5da273fe3fd137c6ae4acf74b7449500f5e4dc09;hp=604801b91cba9c32815e88db87d605bdaec9d2da;hpb=eb2834285cf172856cd12f66892fc7467935ebed;p=linux-2.6-microblaze.git diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 604801b91cba..b48cd597145d 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; } /*