From: Tejun Heo Date: Tue, 31 Aug 2010 09:18:34 +0000 (+0200) Subject: workqueue: use zalloc_cpumask_var() for gcwq->mayday_mask X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=9c37547ab62f88aac3e1e3c2065b611f811de9b5;p=GitHub%2FLineageOS%2Fandroid_kernel_samsung_universal7580.git 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 Reported-by: CAI Qian --- diff --git a/kernel/workqueue.c b/kernel/workqueue.c index c8183b235d1..785542976b0 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -196,7 +196,7 @@ typedef cpumask_var_t mayday_mask_t; cpumask_test_and_set_cpu((cpu), (mask)) #define mayday_clear_cpu(cpu, mask) cpumask_clear_cpu((cpu), (mask)) #define for_each_mayday_cpu(cpu, mask) for_each_cpu((cpu), (mask)) -#define alloc_mayday_mask(maskp, gfp) alloc_cpumask_var((maskp), (gfp)) +#define alloc_mayday_mask(maskp, gfp) zalloc_cpumask_var((maskp), (gfp)) #define free_mayday_mask(mask) free_cpumask_var((mask)) #else typedef unsigned long mayday_mask_t;