aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/include/asm')
-rw-r--r--arch/s390/include/asm/syscall.h3
-rw-r--r--arch/s390/include/asm/thread_info.h4
2 files changed, 4 insertions, 3 deletions
diff --git a/arch/s390/include/asm/syscall.h b/arch/s390/include/asm/syscall.h
index 614267f60713..b239ff53b189 100644
--- a/arch/s390/include/asm/syscall.h
+++ b/arch/s390/include/asm/syscall.h
@@ -26,7 +26,8 @@ extern const unsigned int sys_call_table[];
26static inline long syscall_get_nr(struct task_struct *task, 26static inline long syscall_get_nr(struct task_struct *task,
27 struct pt_regs *regs) 27 struct pt_regs *regs)
28{ 28{
29 return regs->svc_code ? (regs->svc_code & 0xffff) : -1; 29 return test_tsk_thread_flag(task, TIF_SYSCALL) ?
30 (regs->svc_code & 0xffff) : -1;
30} 31}
31 32
32static inline void syscall_rollback(struct task_struct *task, 33static inline void syscall_rollback(struct task_struct *task,
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h
index 0c4788eb5a65..a23183423b14 100644
--- a/arch/s390/include/asm/thread_info.h
+++ b/arch/s390/include/asm/thread_info.h
@@ -85,10 +85,10 @@ static inline struct thread_info *current_thread_info(void)
85/* 85/*
86 * thread information flags bit numbers 86 * thread information flags bit numbers
87 */ 87 */
88#define TIF_SYSCALL 0 /* inside a system call */
88#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */ 89#define TIF_NOTIFY_RESUME 1 /* callback before returning to user */
89#define TIF_SIGPENDING 2 /* signal pending */ 90#define TIF_SIGPENDING 2 /* signal pending */
90#define TIF_NEED_RESCHED 3 /* rescheduling necessary */ 91#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
91#define TIF_RESTART_SVC 4 /* restart svc with new svc number */
92#define TIF_PER_TRAP 6 /* deliver sigtrap on return to user */ 92#define TIF_PER_TRAP 6 /* deliver sigtrap on return to user */
93#define TIF_MCCK_PENDING 7 /* machine check handling is pending */ 93#define TIF_MCCK_PENDING 7 /* machine check handling is pending */
94#define TIF_SYSCALL_TRACE 8 /* syscall trace active */ 94#define TIF_SYSCALL_TRACE 8 /* syscall trace active */
@@ -104,11 +104,11 @@ static inline struct thread_info *current_thread_info(void)
104#define TIF_SINGLE_STEP 20 /* This task is single stepped */ 104#define TIF_SINGLE_STEP 20 /* This task is single stepped */
105#define TIF_FREEZE 21 /* thread is freezing for suspend */ 105#define TIF_FREEZE 21 /* thread is freezing for suspend */
106 106
107#define _TIF_SYSCALL (1<<TIF_SYSCALL)
107#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) 108#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
108#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) 109#define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK)
109#define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 110#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
110#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 111#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
111#define _TIF_RESTART_SVC (1<<TIF_RESTART_SVC)
112#define _TIF_PER_TRAP (1<<TIF_PER_TRAP) 112#define _TIF_PER_TRAP (1<<TIF_PER_TRAP)
113#define _TIF_MCCK_PENDING (1<<TIF_MCCK_PENDING) 113#define _TIF_MCCK_PENDING (1<<TIF_MCCK_PENDING)
114#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 114#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)