workqueue: use "pool->cpu < 0" to stand for an unbound pool
authorLai Jiangshan <laijs@cn.fujitsu.com>
Tue, 3 Jun 2014 07:31:45 +0000 (15:31 +0800)
committerTejun Heo <tj@kernel.org>
Thu, 19 Jun 2014 16:05:00 +0000 (12:05 -0400)
There is a piece of sanity checks code in the put_unbound_pool().
The meaning of this code is "if it is not an unbound pool, it will complain
and return" IIUC. But the code uses "pool->flags & POOL_DISASSOCIATED"
imprecisely due to a non-unbound pool may also have this flags.

We should use "pool->cpu < 0" to stand for an unbound pool, so we covert the
code to it.

There is no strictly wrong if we still keep "pool->flags & POOL_DISASSOCIATED"
here, but it is just a noise if we keep it:
  1) we focus on "unbound" here, not "[dis]association".
  2) "pool->cpu < 0" already implies "pool->flags & POOL_DISASSOCIATED".

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/workqueue.c

index 6203d29008772e9ee647eae939e9b4d070a841e6..ea2c5de502aa26b78324b629b638a677f8a70194 100644 (file)
@@ -3457,7 +3457,7 @@ static void put_unbound_pool(struct worker_pool *pool)
                return;
 
        /* sanity checks */
-       if (WARN_ON(!(pool->flags & POOL_DISASSOCIATED)) ||
+       if (WARN_ON(!(pool->cpu < 0)) ||
            WARN_ON(!list_empty(&pool->worklist)))
                return;