[AVR32] Add TIF_RESTORE_SIGMASK to the work masks

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>

+11 -4
+11 -4
include/asm-avr32/thread_info.h
··· 95 95 #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) 96 96 #define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP) 97 97 98 - /* XXX: These two masks must never span more than 16 bits! */ 98 + /* Note: The masks below must never span more than 16 bits! */ 99 + 99 100 /* work to do on interrupt/exception return */ 100 - #define _TIF_WORK_MASK 0x0000013e 101 + #define _TIF_WORK_MASK \ 102 + ((1 << TIF_SIGPENDING) \ 103 + | (1 << TIF_NEED_RESCHED) \ 104 + | (1 << TIF_POLLING_NRFLAG) \ 105 + | (1 << TIF_BREAKPOINT) \ 106 + | (1 << TIF_RESTORE_SIGMASK)) 107 + 101 108 /* work to do on any return to userspace */ 102 - #define _TIF_ALLWORK_MASK 0x0000013f 109 + #define _TIF_ALLWORK_MASK (_TIF_WORK_MASK | (1 << TIF_SYSCALL_TRACE)) 103 110 /* work to do on return from debug mode */ 104 - #define _TIF_DBGWORK_MASK 0x0000017e 111 + #define _TIF_DBGWORK_MASK (_TIF_WORK_MASK | (1 << TIF_SINGLE_STEP)) 105 112 106 113 #endif /* __ASM_AVR32_THREAD_INFO_H */