Re: [PATCH] workqueue: Correct declaration of cpu_pwq in struct workqueue_struct

From: Tejun Heo
Date: Mon Aug 05 2024 - 16:31:51 EST


On Mon, Aug 05, 2024 at 09:30:29AM +0200, Uros Bizjak wrote:
> cpu_pwq is used in various percpu functions that expect variable in
> __percpu address space. Correct the declaration of cpu_pwq to
>
> struct pool_workqueue __rcu * __percpu *cpu_pwq
>
> to declare the variable as __percpu pointer.
>
> The patch also fixes following sparse errors:
>
> workqueue.c:380:37: warning: duplicate [noderef]
> workqueue.c:380:37: error: multiple address spaces given: __rcu & __percpu
> workqueue.c:2271:15: error: incompatible types in comparison expression (different address spaces):
> workqueue.c:2271:15: struct pool_workqueue [noderef] __rcu *
> workqueue.c:2271:15: struct pool_workqueue [noderef] __percpu *
>
> and uncovers a couple of exisiting "incorrect type in assignment"
> warnings (from __rcu address space), which this patch does not address.
>
> Found by GCC's named address space checks.
>
> There were no changes in the resulting object files.
>
> Signed-off-by: Uros Bizjak <ubizjak@xxxxxxxxx>
> Cc: Tejun Heo <tj@xxxxxxxxxx>
> Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>

Applied to wq/for-6.11-fixes.

Thanks.

--
tejun