diff options
author | Tejun Heo <tj@kernel.org> | 2010-08-31 05:18:34 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-08-31 05:18:34 -0400 |
commit | 9c37547ab62f88aac3e1e3c2065b611f811de9b5 (patch) | |
tree | 2a9c3655e25c93b4c3ce49c575d5d908045ebdd4 /kernel/workqueue.c | |
parent | 477a3c33d1efa0342a74bd02da2e049191993e2c (diff) |
workqueue: use zalloc_cpumask_var() for gcwq->mayday_mask
alloc_mayday_mask() was using alloc_cpumask_var() making
gcwq->mayday_mask contain garbage after initialization on
CONFIG_CPUMASK_OFFSTACK=y configurations. This combined with the
previously fixed GCWQ_DISASSOCIATED initialization bug could make
rescuers fall into infinite loop trying to bind to an offline cpu.
Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: CAI Qian <caiqian@redhat.com>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index c8183b235d16..785542976b00 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -196,7 +196,7 @@ typedef cpumask_var_t mayday_mask_t; | |||
196 | cpumask_test_and_set_cpu((cpu), (mask)) | 196 | cpumask_test_and_set_cpu((cpu), (mask)) |
197 | #define mayday_clear_cpu(cpu, mask) cpumask_clear_cpu((cpu), (mask)) | 197 | #define mayday_clear_cpu(cpu, mask) cpumask_clear_cpu((cpu), (mask)) |
198 | #define for_each_mayday_cpu(cpu, mask) for_each_cpu((cpu), (mask)) | 198 | #define for_each_mayday_cpu(cpu, mask) for_each_cpu((cpu), (mask)) |
199 | #define alloc_mayday_mask(maskp, gfp) alloc_cpumask_var((maskp), (gfp)) | 199 | #define alloc_mayday_mask(maskp, gfp) zalloc_cpumask_var((maskp), (gfp)) |
200 | #define free_mayday_mask(mask) free_cpumask_var((mask)) | 200 | #define free_mayday_mask(mask) free_cpumask_var((mask)) |
201 | #else | 201 | #else |
202 | typedef unsigned long mayday_mask_t; | 202 | typedef unsigned long mayday_mask_t; |