#define CGROUP_WEIGHT_DFL              100
 #define CGROUP_WEIGHT_MAX              10000
 
-/* walk only threadgroup leaders */
-#define CSS_TASK_ITER_PROCS            (1U << 0)
-/* walk all threaded css_sets in the domain */
-#define CSS_TASK_ITER_THREADED         (1U << 1)
-
-/* internal flags */
-#define CSS_TASK_ITER_SKIPPED          (1U << 16)
+enum {
+       CSS_TASK_ITER_PROCS    = (1U << 0),  /* walk only threadgroup leaders */
+       CSS_TASK_ITER_THREADED = (1U << 1),  /* walk all threaded css_sets in the domain */
+       CSS_TASK_ITER_SKIPPED  = (1U << 16), /* internal flags */
+};
 
 /* a css_task_iter should be treated as an opaque object */
 struct css_task_iter {
 
 void css_task_iter_start(struct cgroup_subsys_state *css, unsigned int flags,
                         struct css_task_iter *it)
 {
+       unsigned long irqflags;
+
        memset(it, 0, sizeof(*it));
 
-       spin_lock_irq(&css_set_lock);
+       spin_lock_irqsave(&css_set_lock, irqflags);
 
        it->ss = css->ss;
        it->flags = flags;
 
        css_task_iter_advance(it);
 
-       spin_unlock_irq(&css_set_lock);
+       spin_unlock_irqrestore(&css_set_lock, irqflags);
 }
 
 /**
  */
 struct task_struct *css_task_iter_next(struct css_task_iter *it)
 {
+       unsigned long irqflags;
+
        if (it->cur_task) {
                put_task_struct(it->cur_task);
                it->cur_task = NULL;
        }
 
-       spin_lock_irq(&css_set_lock);
+       spin_lock_irqsave(&css_set_lock, irqflags);
 
        /* @it may be half-advanced by skips, finish advancing */
        if (it->flags & CSS_TASK_ITER_SKIPPED)
                css_task_iter_advance(it);
        }
 
-       spin_unlock_irq(&css_set_lock);
+       spin_unlock_irqrestore(&css_set_lock, irqflags);
 
        return it->cur_task;
 }
  */
 void css_task_iter_end(struct css_task_iter *it)
 {
+       unsigned long irqflags;
+
        if (it->cur_cset) {
-               spin_lock_irq(&css_set_lock);
+               spin_lock_irqsave(&css_set_lock, irqflags);
                list_del(&it->iters_node);
                put_css_set_locked(it->cur_cset);
-               spin_unlock_irq(&css_set_lock);
+               spin_unlock_irqrestore(&css_set_lock, irqflags);
        }
 
        if (it->cur_dcset)