mirror of
https://github.com/torvalds/linux.git
synced 2025-12-01 07:26:02 +07:00
workqueue: Correct declaration of cpu_pwq in struct workqueue_struct
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> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -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 */
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user