kernel/workqueue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
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@gmail.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
---
kernel/workqueue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 1745ca788ede..32729a2e93af 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -377,7 +377,7 @@ struct workqueue_struct {
/* hot fields used during command issue, aligned to cacheline */
unsigned int flags ____cacheline_aligned; /* WQ: WQ_* flags */
- struct pool_workqueue __percpu __rcu **cpu_pwq; /* I: per-cpu pwqs */
+ struct pool_workqueue __rcu * __percpu *cpu_pwq; /* I: per-cpu pwqs */
struct wq_node_nr_active *node_nr_active[]; /* I: per-node nr_active */
};
--
2.45.2
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@gmail.com> > Cc: Tejun Heo <tj@kernel.org> > Cc: Lai Jiangshan <jiangshanlai@gmail.com> Applied to wq/for-6.11-fixes. Thanks. -- tejun
© 2016 - 2025 Red Hat, Inc.