#include <asm/processor.h>
 
+/*
+ * Task state bitmask. NOTE! These bits are also
+ * encoded in fs/proc/array.c: get_task_state().
+ *
+ * We have two separate sets of flags: task->state
+ * is about runnability, while task->exit_state are
+ * about the task exiting. Confusing, but this way
+ * modifying one set can't modify the other one by
+ * mistake.
+ */
 #define TASK_RUNNING           0
 #define TASK_INTERRUPTIBLE     1
 #define TASK_UNINTERRUPTIBLE   2
-#define TASK_NONINTERACTIVE    4
-#define TASK_STOPPED           8
-#define TASK_TRACED            16
-#define EXIT_ZOMBIE            32
-#define EXIT_DEAD              64
+#define TASK_STOPPED           4
+#define TASK_TRACED            8
+/* in tsk->exit_state */
+#define EXIT_ZOMBIE            16
+#define EXIT_DEAD              32
+/* in tsk->state again */
+#define TASK_NONINTERACTIVE    64
 
 #define __set_task_state(tsk, state_value)             \
        do { (tsk)->state = (state_value); } while (0)