diff options
author | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-11-27 08:10:58 -0500 |
---|---|---|
committer | Haavard Skinnemoen <hskinnemoen@atmel.com> | 2007-12-07 08:52:32 -0500 |
commit | 702f22b306c8357b3ef5012b5a8ce062e1d11b4e (patch) | |
tree | 48e488428753698ba003e9ff95f5bf835dbe473e /include/asm-avr32/thread_info.h | |
parent | f194d132e4971111f85c18c96067acffb13cee6d (diff) |
[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>
Diffstat (limited to 'include/asm-avr32/thread_info.h')
-rw-r--r-- | include/asm-avr32/thread_info.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/include/asm-avr32/thread_info.h b/include/asm-avr32/thread_info.h index 17dacf3f36d3..67e7aae89e1f 100644 --- a/include/asm-avr32/thread_info.h +++ b/include/asm-avr32/thread_info.h | |||
@@ -95,12 +95,19 @@ static inline struct thread_info *current_thread_info(void) | |||
95 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) | 95 | #define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK) |
96 | #define _TIF_CPU_GOING_TO_SLEEP (1 << TIF_CPU_GOING_TO_SLEEP) | 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 | /* work to do on interrupt/exception return */ | 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 | /* work to do on any return to userspace */ | 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 | /* work to do on return from debug mode */ | 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 | #endif /* __ASM_AVR32_THREAD_INFO_H */ | 113 | #endif /* __ASM_AVR32_THREAD_INFO_H */ |