#define _TIF_RESTORE_SIGMASK   (1 << TIF_RESTORE_SIGMASK)
 #define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP)
 
-/* XXX: These two masks must never span more than 16 bits! */
+/* Note: The masks below must never span more than 16 bits! */
+
 /* work to do on interrupt/exception return */
-#define _TIF_WORK_MASK         0x0000013e
+#define _TIF_WORK_MASK                         \
+       ((1 << TIF_SIGPENDING)                  \
+        | (1 << TIF_NEED_RESCHED)              \
+        | (1 << TIF_POLLING_NRFLAG)            \
+        | (1 << TIF_BREAKPOINT)                \
+        | (1 << TIF_RESTORE_SIGMASK))
+
 /* work to do on any return to userspace */
-#define _TIF_ALLWORK_MASK      0x0000013f
+#define _TIF_ALLWORK_MASK      (_TIF_WORK_MASK | (1 << TIF_SYSCALL_TRACE))
 /* work to do on return from debug mode */
-#define _TIF_DBGWORK_MASK      0x0000017e
+#define _TIF_DBGWORK_MASK      (_TIF_WORK_MASK | (1 << TIF_SINGLE_STEP))
 
 #endif /* __ASM_AVR32_THREAD_INFO_H */