[AVR32] Add TIF_RESTORE_SIGMASK to the work masks
authorHaavard Skinnemoen <hskinnemoen@atmel.com>
Tue, 27 Nov 2007 13:10:58 +0000 (14:10 +0100)
committerHaavard Skinnemoen <hskinnemoen@atmel.com>
Fri, 7 Dec 2007 13:52:32 +0000 (14:52 +0100)
We really need to check TIF_RESTORE_SIGMASK before returning to
userspace. The existing code does not necessarily do this.

Define the work masks as a bitwise OR of the respective flags instead
of a hardcoded hex value to make it easier to spot errors like this in
the future.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
include/asm-avr32/thread_info.h

index 17dacf3f36d39bf8ef820a5a7b5c509dfe1a7a5b..67e7aae89e1f414d46d5a563830261929f16d505 100644 (file)
@@ -95,12 +95,19 @@ static inline struct thread_info *current_thread_info(void)
 #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 */