diff options
author | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:10 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-06-29 04:07:10 -0400 |
commit | 22df02bb3fab24af97bff4c69cc6fd8529fc66fe (patch) | |
tree | 125b00589e5abe4dc941a1dba467cd50563ad195 /kernel/workqueue.c | |
parent | 97e37d7b9e65a6ac939f796f91081135b7a08acc (diff) |
workqueue: define masks for work flags and conditionalize STATIC flags
Work flags are about to see more traditional mask handling. Define
WORK_STRUCT_*_BIT as the bit position constant and redefine
WORK_STRUCT_* as bit masks. Also, make WORK_STRUCT_STATIC_* flags
conditional
While at it, re-define these constants as enums and use
WORK_STRUCT_STATIC instead of hard-coding 2 in
WORK_DATA_STATIC_INIT().
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/workqueue.c')
-rw-r--r-- | kernel/workqueue.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 68e4dd808ec0..5c49d762293b 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c | |||
@@ -115,7 +115,7 @@ static int work_fixup_activate(void *addr, enum debug_obj_state state) | |||
115 | * statically initialized. We just make sure that it | 115 | * statically initialized. We just make sure that it |
116 | * is tracked in the object tracker. | 116 | * is tracked in the object tracker. |
117 | */ | 117 | */ |
118 | if (test_bit(WORK_STRUCT_STATIC, work_data_bits(work))) { | 118 | if (test_bit(WORK_STRUCT_STATIC_BIT, work_data_bits(work))) { |
119 | debug_object_init(work, &work_debug_descr); | 119 | debug_object_init(work, &work_debug_descr); |
120 | debug_object_activate(work, &work_debug_descr); | 120 | debug_object_activate(work, &work_debug_descr); |
121 | return 0; | 121 | return 0; |
@@ -232,7 +232,7 @@ static inline void set_wq_data(struct work_struct *work, | |||
232 | BUG_ON(!work_pending(work)); | 232 | BUG_ON(!work_pending(work)); |
233 | 233 | ||
234 | atomic_long_set(&work->data, (unsigned long)cwq | work_static(work) | | 234 | atomic_long_set(&work->data, (unsigned long)cwq | work_static(work) | |
235 | (1UL << WORK_STRUCT_PENDING) | extra_flags); | 235 | WORK_STRUCT_PENDING | extra_flags); |
236 | } | 236 | } |
237 | 237 | ||
238 | /* | 238 | /* |
@@ -330,7 +330,7 @@ queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work) | |||
330 | { | 330 | { |
331 | int ret = 0; | 331 | int ret = 0; |
332 | 332 | ||
333 | if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) { | 333 | if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { |
334 | __queue_work(cpu, wq, work); | 334 | __queue_work(cpu, wq, work); |
335 | ret = 1; | 335 | ret = 1; |
336 | } | 336 | } |
@@ -380,7 +380,7 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq, | |||
380 | struct timer_list *timer = &dwork->timer; | 380 | struct timer_list *timer = &dwork->timer; |
381 | struct work_struct *work = &dwork->work; | 381 | struct work_struct *work = &dwork->work; |
382 | 382 | ||
383 | if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) { | 383 | if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) { |
384 | BUG_ON(timer_pending(timer)); | 384 | BUG_ON(timer_pending(timer)); |
385 | BUG_ON(!list_empty(&work->entry)); | 385 | BUG_ON(!list_empty(&work->entry)); |
386 | 386 | ||
@@ -516,7 +516,7 @@ static void insert_wq_barrier(struct cpu_workqueue_struct *cwq, | |||
516 | * might deadlock. | 516 | * might deadlock. |
517 | */ | 517 | */ |
518 | INIT_WORK_ON_STACK(&barr->work, wq_barrier_func); | 518 | INIT_WORK_ON_STACK(&barr->work, wq_barrier_func); |
519 | __set_bit(WORK_STRUCT_PENDING, work_data_bits(&barr->work)); | 519 | __set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&barr->work)); |
520 | init_completion(&barr->done); | 520 | init_completion(&barr->done); |
521 | 521 | ||
522 | debug_work_activate(&barr->work); | 522 | debug_work_activate(&barr->work); |
@@ -628,7 +628,7 @@ static int try_to_grab_pending(struct work_struct *work) | |||
628 | struct cpu_workqueue_struct *cwq; | 628 | struct cpu_workqueue_struct *cwq; |
629 | int ret = -1; | 629 | int ret = -1; |
630 | 630 | ||
631 | if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) | 631 | if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) |
632 | return 0; | 632 | return 0; |
633 | 633 | ||
634 | /* | 634 | /* |