Messages in this thread Patch in this message | | | From | Lai Jiangshan <> | Subject | [PATCH 18/21] workqueue: read POOL_DISASSOCIATED bit under pool->lock | Date | Wed, 20 Mar 2013 03:28:18 +0800 |
| |
Simply move it to pool->lock C.S.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> --- kernel/workqueue.c | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 21ef721..0c692d4 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1611,11 +1611,10 @@ static struct worker *create_worker(struct worker_pool *pool) * remains stable across this function. See the comments above the * flag definition for details. */ + spin_lock_irq(&pool->lock); if (pool->flags & POOL_DISASSOCIATED) worker->flags |= WORKER_UNBOUND; - /* successful, commit the pointer to idr */ - spin_lock_irq(&pool->lock); idr_replace(&pool->worker_idr, worker, worker->id); spin_unlock_irq(&pool->lock); -- 1.7.7.6
| |