Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 702f22b3 authored by Haavard Skinnemoen's avatar Haavard Skinnemoen
Browse files

[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: default avatarHaavard Skinnemoen <hskinnemoen@atmel.com>
parent f194d132
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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 */