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>
This commit is contained in:
@@ -115,7 +115,7 @@ static int work_fixup_activate(void *addr, enum debug_obj_state state)
|
||||
* statically initialized. We just make sure that it
|
||||
* is tracked in the object tracker.
|
||||
*/
|
||||
if (test_bit(WORK_STRUCT_STATIC, work_data_bits(work))) {
|
||||
if (test_bit(WORK_STRUCT_STATIC_BIT, work_data_bits(work))) {
|
||||
debug_object_init(work, &work_debug_descr);
|
||||
debug_object_activate(work, &work_debug_descr);
|
||||
return 0;
|
||||
@@ -232,7 +232,7 @@ static inline void set_wq_data(struct work_struct *work,
|
||||
BUG_ON(!work_pending(work));
|
||||
|
||||
atomic_long_set(&work->data, (unsigned long)cwq | work_static(work) |
|
||||
(1UL << WORK_STRUCT_PENDING) | extra_flags);
|
||||
WORK_STRUCT_PENDING | extra_flags);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -330,7 +330,7 @@ queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) {
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
|
||||
__queue_work(cpu, wq, work);
|
||||
ret = 1;
|
||||
}
|
||||
@@ -380,7 +380,7 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
|
||||
struct timer_list *timer = &dwork->timer;
|
||||
struct work_struct *work = &dwork->work;
|
||||
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work))) {
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
|
||||
BUG_ON(timer_pending(timer));
|
||||
BUG_ON(!list_empty(&work->entry));
|
||||
|
||||
@@ -516,7 +516,7 @@ static void insert_wq_barrier(struct cpu_workqueue_struct *cwq,
|
||||
* might deadlock.
|
||||
*/
|
||||
INIT_WORK_ON_STACK(&barr->work, wq_barrier_func);
|
||||
__set_bit(WORK_STRUCT_PENDING, work_data_bits(&barr->work));
|
||||
__set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&barr->work));
|
||||
init_completion(&barr->done);
|
||||
|
||||
debug_work_activate(&barr->work);
|
||||
@@ -628,7 +628,7 @@ static int try_to_grab_pending(struct work_struct *work)
|
||||
struct cpu_workqueue_struct *cwq;
|
||||
int ret = -1;
|
||||
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING, work_data_bits(work)))
|
||||
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user