*/
 #define work_data_bits(work) ((unsigned long *)(&(work)->data))
 
+enum {
+       WORK_STRUCT_PENDING_BIT = 0,    /* work item is pending execution */
+#ifdef CONFIG_DEBUG_OBJECTS_WORK
+       WORK_STRUCT_STATIC_BIT  = 1,    /* static initializer (debugobjects) */
+#endif
+
+       WORK_STRUCT_PENDING     = 1 << WORK_STRUCT_PENDING_BIT,
+#ifdef CONFIG_DEBUG_OBJECTS_WORK
+       WORK_STRUCT_STATIC      = 1 << WORK_STRUCT_STATIC_BIT,
+#else
+       WORK_STRUCT_STATIC      = 0,
+#endif
+
+       WORK_STRUCT_FLAG_MASK   = 3UL,
+       WORK_STRUCT_WQ_DATA_MASK = ~WORK_STRUCT_FLAG_MASK,
+};
+
 struct work_struct {
        atomic_long_t data;
-#define WORK_STRUCT_PENDING 0          /* T if work item pending execution */
-#define WORK_STRUCT_STATIC  1          /* static initializer (debugobjects) */
-#define WORK_STRUCT_FLAG_MASK (3UL)
-#define WORK_STRUCT_WQ_DATA_MASK (~WORK_STRUCT_FLAG_MASK)
        struct list_head entry;
        work_func_t func;
 #ifdef CONFIG_LOCKDEP
 };
 
 #define WORK_DATA_INIT()       ATOMIC_LONG_INIT(0)
-#define WORK_DATA_STATIC_INIT()        ATOMIC_LONG_INIT(2)
+#define WORK_DATA_STATIC_INIT()        ATOMIC_LONG_INIT(WORK_STRUCT_STATIC)
 
 struct delayed_work {
        struct work_struct work;
 extern void destroy_work_on_stack(struct work_struct *work);
 static inline unsigned int work_static(struct work_struct *work)
 {
-       return *work_data_bits(work) & (1 << WORK_STRUCT_STATIC);
+       return *work_data_bits(work) & WORK_STRUCT_STATIC;
 }
 #else
 static inline void __init_work(struct work_struct *work, int onstack) { }
  * @work: The work item in question
  */
 #define work_pending(work) \
-       test_bit(WORK_STRUCT_PENDING, work_data_bits(work))
+       test_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
 
 /**
  * delayed_work_pending - Find out whether a delayable work item is currently
  * @work: The work item in question
  */
 #define work_clear_pending(work) \
-       clear_bit(WORK_STRUCT_PENDING, work_data_bits(work))
+       clear_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))
 
 enum {
        WQ_FREEZEABLE           = 1 << 0, /* freeze during suspend */
 
                 * 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;
        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);
 }
 
 /*
 {
        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;
        }
        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));
 
         * 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);
        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;
 
        /*