mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
signals: s390: renumber TIF_RESTORE_SIGMASK
TIF_RESTORE_SIGMASK no longer needs to be in the _TIF_WORK_* masks. Those low bits are scarce, and are all used up now. Renumber TIF_RESTORE_SIGMASK to free one up. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7648d961fc
commit
02a029b325
@ -49,9 +49,9 @@ SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC
|
|||||||
SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP
|
SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP
|
||||||
SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE
|
SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE
|
||||||
|
|
||||||
_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
|
_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
|
||||||
_TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )
|
_TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )
|
||||||
_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
|
_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
|
||||||
_TIF_MCCK_PENDING)
|
_TIF_MCCK_PENDING)
|
||||||
|
|
||||||
STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER
|
STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER
|
||||||
@ -316,7 +316,7 @@ sysc_work:
|
|||||||
bo BASED(sysc_mcck_pending)
|
bo BASED(sysc_mcck_pending)
|
||||||
tm __TI_flags+3(%r9),_TIF_NEED_RESCHED
|
tm __TI_flags+3(%r9),_TIF_NEED_RESCHED
|
||||||
bo BASED(sysc_reschedule)
|
bo BASED(sysc_reschedule)
|
||||||
tm __TI_flags+3(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
|
tm __TI_flags+3(%r9),_TIF_SIGPENDING
|
||||||
bnz BASED(sysc_sigpending)
|
bnz BASED(sysc_sigpending)
|
||||||
tm __TI_flags+3(%r9),_TIF_RESTART_SVC
|
tm __TI_flags+3(%r9),_TIF_RESTART_SVC
|
||||||
bo BASED(sysc_restart)
|
bo BASED(sysc_restart)
|
||||||
@ -342,7 +342,7 @@ sysc_mcck_pending:
|
|||||||
br %r1 # TIF bit will be cleared by handler
|
br %r1 # TIF bit will be cleared by handler
|
||||||
|
|
||||||
#
|
#
|
||||||
# _TIF_SIGPENDING or _TIF_RESTORE_SIGMASK is set, call do_signal
|
# _TIF_SIGPENDING is set, call do_signal
|
||||||
#
|
#
|
||||||
sysc_sigpending:
|
sysc_sigpending:
|
||||||
ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
|
ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
|
||||||
@ -657,7 +657,7 @@ io_work:
|
|||||||
lr %r15,%r1
|
lr %r15,%r1
|
||||||
#
|
#
|
||||||
# One of the work bits is on. Find out which one.
|
# One of the work bits is on. Find out which one.
|
||||||
# Checked are: _TIF_SIGPENDING, _TIF_RESTORE_SIGMASK, _TIF_NEED_RESCHED
|
# Checked are: _TIF_SIGPENDING, _TIF_NEED_RESCHED
|
||||||
# and _TIF_MCCK_PENDING
|
# and _TIF_MCCK_PENDING
|
||||||
#
|
#
|
||||||
io_work_loop:
|
io_work_loop:
|
||||||
@ -665,7 +665,7 @@ io_work_loop:
|
|||||||
bo BASED(io_mcck_pending)
|
bo BASED(io_mcck_pending)
|
||||||
tm __TI_flags+3(%r9),_TIF_NEED_RESCHED
|
tm __TI_flags+3(%r9),_TIF_NEED_RESCHED
|
||||||
bo BASED(io_reschedule)
|
bo BASED(io_reschedule)
|
||||||
tm __TI_flags+3(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
|
tm __TI_flags+3(%r9),_TIF_SIGPENDING
|
||||||
bnz BASED(io_sigpending)
|
bnz BASED(io_sigpending)
|
||||||
b BASED(io_restore)
|
b BASED(io_restore)
|
||||||
io_work_done:
|
io_work_done:
|
||||||
@ -693,7 +693,7 @@ io_reschedule:
|
|||||||
b BASED(io_work_loop)
|
b BASED(io_work_loop)
|
||||||
|
|
||||||
#
|
#
|
||||||
# _TIF_SIGPENDING or _TIF_RESTORE_SIGMASK is set, call do_signal
|
# _TIF_SIGPENDING is set, call do_signal
|
||||||
#
|
#
|
||||||
io_sigpending:
|
io_sigpending:
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON
|
||||||
|
@ -52,9 +52,9 @@ SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE
|
|||||||
STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER
|
STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER
|
||||||
STACK_SIZE = 1 << STACK_SHIFT
|
STACK_SIZE = 1 << STACK_SHIFT
|
||||||
|
|
||||||
_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
|
_TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
|
||||||
_TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )
|
_TIF_MCCK_PENDING | _TIF_RESTART_SVC | _TIF_SINGLE_STEP )
|
||||||
_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
|
_TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
|
||||||
_TIF_MCCK_PENDING)
|
_TIF_MCCK_PENDING)
|
||||||
|
|
||||||
#define BASED(name) name-system_call(%r13)
|
#define BASED(name) name-system_call(%r13)
|
||||||
@ -308,7 +308,7 @@ sysc_work:
|
|||||||
jo sysc_mcck_pending
|
jo sysc_mcck_pending
|
||||||
tm __TI_flags+7(%r9),_TIF_NEED_RESCHED
|
tm __TI_flags+7(%r9),_TIF_NEED_RESCHED
|
||||||
jo sysc_reschedule
|
jo sysc_reschedule
|
||||||
tm __TI_flags+7(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
|
tm __TI_flags+7(%r9),_TIF_SIGPENDING
|
||||||
jnz sysc_sigpending
|
jnz sysc_sigpending
|
||||||
tm __TI_flags+7(%r9),_TIF_RESTART_SVC
|
tm __TI_flags+7(%r9),_TIF_RESTART_SVC
|
||||||
jo sysc_restart
|
jo sysc_restart
|
||||||
@ -332,7 +332,7 @@ sysc_mcck_pending:
|
|||||||
jg s390_handle_mcck # TIF bit will be cleared by handler
|
jg s390_handle_mcck # TIF bit will be cleared by handler
|
||||||
|
|
||||||
#
|
#
|
||||||
# _TIF_SIGPENDING or _TIF_RESTORE_SIGMASK is set, call do_signal
|
# _TIF_SIGPENDING is set, call do_signal
|
||||||
#
|
#
|
||||||
sysc_sigpending:
|
sysc_sigpending:
|
||||||
ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
|
ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP
|
||||||
@ -648,7 +648,7 @@ io_work_loop:
|
|||||||
jo io_mcck_pending
|
jo io_mcck_pending
|
||||||
tm __TI_flags+7(%r9),_TIF_NEED_RESCHED
|
tm __TI_flags+7(%r9),_TIF_NEED_RESCHED
|
||||||
jo io_reschedule
|
jo io_reschedule
|
||||||
tm __TI_flags+7(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
|
tm __TI_flags+7(%r9),_TIF_SIGPENDING
|
||||||
jnz io_sigpending
|
jnz io_sigpending
|
||||||
j io_restore
|
j io_restore
|
||||||
io_work_done:
|
io_work_done:
|
||||||
@ -674,7 +674,7 @@ io_reschedule:
|
|||||||
j io_work_loop
|
j io_work_loop
|
||||||
|
|
||||||
#
|
#
|
||||||
# _TIF_SIGPENDING or _TIF_RESTORE_SIGMASK is set, call do_signal
|
# _TIF_SIGPENDING or is set, call do_signal
|
||||||
#
|
#
|
||||||
io_sigpending:
|
io_sigpending:
|
||||||
TRACE_IRQS_ON
|
TRACE_IRQS_ON
|
||||||
|
@ -89,7 +89,6 @@ static inline struct thread_info *current_thread_info(void)
|
|||||||
* thread information flags bit numbers
|
* thread information flags bit numbers
|
||||||
*/
|
*/
|
||||||
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
|
#define TIF_SYSCALL_TRACE 0 /* syscall trace active */
|
||||||
#define TIF_RESTORE_SIGMASK 1 /* restore signal mask in do_signal() */
|
|
||||||
#define TIF_SIGPENDING 2 /* signal pending */
|
#define TIF_SIGPENDING 2 /* signal pending */
|
||||||
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
|
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
|
||||||
#define TIF_RESTART_SVC 4 /* restart svc with new svc number */
|
#define TIF_RESTART_SVC 4 /* restart svc with new svc number */
|
||||||
@ -101,6 +100,7 @@ static inline struct thread_info *current_thread_info(void)
|
|||||||
TIF_NEED_RESCHED */
|
TIF_NEED_RESCHED */
|
||||||
#define TIF_31BIT 18 /* 32bit process */
|
#define TIF_31BIT 18 /* 32bit process */
|
||||||
#define TIF_MEMDIE 19
|
#define TIF_MEMDIE 19
|
||||||
|
#define TIF_RESTORE_SIGMASK 20 /* restore signal mask in do_signal() */
|
||||||
|
|
||||||
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
|
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
|
||||||
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
|
#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
|
||||||
|
Loading…
Reference in New Issue
Block a user