aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r--arch/s390/kernel/compat_linux.c80
-rw-r--r--arch/s390/kernel/compat_linux.h34
-rw-r--r--arch/s390/kernel/compat_signal.c134
-rw-r--r--arch/s390/kernel/compat_wrapper.S144
-rw-r--r--arch/s390/kernel/entry.h4
-rw-r--r--arch/s390/kernel/signal.c56
-rw-r--r--arch/s390/kernel/syscalls.S46
7 files changed, 28 insertions, 470 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index 65cca95843e1..19f26de27fae 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -352,86 +352,6 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned
352 return sys_ftruncate(fd, (high << 32) | low); 352 return sys_ftruncate(fd, (high << 32) | low);
353} 353}
354 354
355asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid,
356 struct compat_timespec __user *interval)
357{
358 struct timespec t;
359 int ret;
360 mm_segment_t old_fs = get_fs ();
361
362 set_fs (KERNEL_DS);
363 ret = sys_sched_rr_get_interval(pid,
364 (struct timespec __force __user *) &t);
365 set_fs (old_fs);
366 if (put_compat_timespec(&t, interval))
367 return -EFAULT;
368 return ret;
369}
370
371asmlinkage long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
372 compat_sigset_t __user *oset, size_t sigsetsize)
373{
374 sigset_t s;
375 compat_sigset_t s32;
376 int ret;
377 mm_segment_t old_fs = get_fs();
378
379 if (set) {
380 if (copy_from_user (&s32, set, sizeof(compat_sigset_t)))
381 return -EFAULT;
382 s.sig[0] = s32.sig[0] | (((long)s32.sig[1]) << 32);
383 }
384 set_fs (KERNEL_DS);
385 ret = sys_rt_sigprocmask(how,
386 set ? (sigset_t __force __user *) &s : NULL,
387 oset ? (sigset_t __force __user *) &s : NULL,
388 sigsetsize);
389 set_fs (old_fs);
390 if (ret) return ret;
391 if (oset) {
392 s32.sig[1] = (s.sig[0] >> 32);
393 s32.sig[0] = s.sig[0];
394 if (copy_to_user (oset, &s32, sizeof(compat_sigset_t)))
395 return -EFAULT;
396 }
397 return 0;
398}
399
400asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set,
401 size_t sigsetsize)
402{
403 sigset_t s;
404 compat_sigset_t s32;
405 int ret;
406 mm_segment_t old_fs = get_fs();
407
408 set_fs (KERNEL_DS);
409 ret = sys_rt_sigpending((sigset_t __force __user *) &s, sigsetsize);
410 set_fs (old_fs);
411 if (!ret) {
412 s32.sig[1] = (s.sig[0] >> 32);
413 s32.sig[0] = s.sig[0];
414 if (copy_to_user (set, &s32, sizeof(compat_sigset_t)))
415 return -EFAULT;
416 }
417 return ret;
418}
419
420asmlinkage long
421sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo)
422{
423 siginfo_t info;
424 int ret;
425 mm_segment_t old_fs = get_fs();
426
427 if (copy_siginfo_from_user32(&info, uinfo))
428 return -EFAULT;
429 set_fs (KERNEL_DS);
430 ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __force __user *) &info);
431 set_fs (old_fs);
432 return ret;
433}
434
435asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf, 355asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf,
436 size_t count, u32 poshi, u32 poslo) 356 size_t count, u32 poshi, u32 poslo)
437{ 357{
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h
index d4d0239970ac..00d92a5a6f6c 100644
--- a/arch/s390/kernel/compat_linux.h
+++ b/arch/s390/kernel/compat_linux.h
@@ -17,13 +17,6 @@ struct ipc_kludge_32 {
17 __s32 msgtyp; 17 __s32 msgtyp;
18}; 18};
19 19
20struct old_sigaction32 {
21 __u32 sa_handler; /* Really a pointer, but need to deal with 32 bits */
22 compat_old_sigset_t sa_mask; /* A 32 bit mask */
23 __u32 sa_flags;
24 __u32 sa_restorer; /* Another 32 bit pointer */
25};
26
27/* asm/sigcontext.h */ 20/* asm/sigcontext.h */
28typedef union 21typedef union
29{ 22{
@@ -68,24 +61,12 @@ struct sigcontext32
68}; 61};
69 62
70/* asm/signal.h */ 63/* asm/signal.h */
71struct sigaction32 {
72 __u32 sa_handler; /* pointer */
73 __u32 sa_flags;
74 __u32 sa_restorer; /* pointer */
75 compat_sigset_t sa_mask; /* mask last for extensibility */
76};
77
78typedef struct {
79 __u32 ss_sp; /* pointer */
80 int ss_flags;
81 compat_size_t ss_size;
82} stack_t32;
83 64
84/* asm/ucontext.h */ 65/* asm/ucontext.h */
85struct ucontext32 { 66struct ucontext32 {
86 __u32 uc_flags; 67 __u32 uc_flags;
87 __u32 uc_link; /* pointer */ 68 __u32 uc_link; /* pointer */
88 stack_t32 uc_stack; 69 compat_stack_t uc_stack;
89 _sigregs32 uc_mcontext; 70 _sigregs32 uc_mcontext;
90 compat_sigset_t uc_sigmask; /* mask last for extensibility */ 71 compat_sigset_t uc_sigmask; /* mask last for extensibility */
91}; 72};
@@ -93,8 +74,6 @@ struct ucontext32 {
93struct stat64_emu31; 74struct stat64_emu31;
94struct mmap_arg_struct_emu31; 75struct mmap_arg_struct_emu31;
95struct fadvise64_64_args; 76struct fadvise64_64_args;
96struct old_sigaction32;
97struct old_sigaction32;
98 77
99long sys32_chown16(const char __user * filename, u16 user, u16 group); 78long sys32_chown16(const char __user * filename, u16 user, u16 group);
100long sys32_lchown16(const char __user * filename, u16 user, u16 group); 79long sys32_lchown16(const char __user * filename, u16 user, u16 group);
@@ -119,12 +98,6 @@ long sys32_ipc(u32 call, int first, int second, int third, u32 ptr);
119long sys32_truncate64(const char __user * path, unsigned long high, 98long sys32_truncate64(const char __user * path, unsigned long high,
120 unsigned long low); 99 unsigned long low);
121long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low); 100long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low);
122long sys32_sched_rr_get_interval(compat_pid_t pid,
123 struct compat_timespec __user *interval);
124long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
125 compat_sigset_t __user *oset, size_t sigsetsize);
126long sys32_rt_sigpending(compat_sigset_t __user *set, size_t sigsetsize);
127long sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo);
128long sys32_init_module(void __user *umod, unsigned long len, 101long sys32_init_module(void __user *umod, unsigned long len,
129 const char __user *uargs); 102 const char __user *uargs);
130long sys32_delete_module(const char __user *name_user, unsigned int flags); 103long sys32_delete_module(const char __user *name_user, unsigned int flags);
@@ -149,9 +122,4 @@ long sys32_read(unsigned int fd, char __user * buf, size_t count);
149long sys32_write(unsigned int fd, const char __user * buf, size_t count); 122long sys32_write(unsigned int fd, const char __user * buf, size_t count);
150long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise); 123long sys32_fadvise64(int fd, loff_t offset, size_t len, int advise);
151long sys32_fadvise64_64(struct fadvise64_64_args __user *args); 124long sys32_fadvise64_64(struct fadvise64_64_args __user *args);
152long sys32_sigaction(int sig, const struct old_sigaction32 __user *act,
153 struct old_sigaction32 __user *oact);
154long sys32_rt_sigaction(int sig, const struct sigaction32 __user *act,
155 struct sigaction32 __user *oact, size_t sigsetsize);
156long sys32_sigaltstack(const stack_t32 __user *uss, stack_t32 __user *uoss);
157#endif /* _ASM_S390X_S390_H */ 125#endif /* _ASM_S390X_S390_H */
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index 593fcc9253fc..3e71194c1902 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -157,122 +157,6 @@ int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from)
157 return err; 157 return err;
158} 158}
159 159
160asmlinkage long
161sys32_sigaction(int sig, const struct old_sigaction32 __user *act,
162 struct old_sigaction32 __user *oact)
163{
164 struct k_sigaction new_ka, old_ka;
165 unsigned long sa_handler, sa_restorer;
166 int ret;
167
168 if (act) {
169 compat_old_sigset_t mask;
170 if (!access_ok(VERIFY_READ, act, sizeof(*act)) ||
171 __get_user(sa_handler, &act->sa_handler) ||
172 __get_user(sa_restorer, &act->sa_restorer) ||
173 __get_user(new_ka.sa.sa_flags, &act->sa_flags) ||
174 __get_user(mask, &act->sa_mask))
175 return -EFAULT;
176 new_ka.sa.sa_handler = (__sighandler_t) sa_handler;
177 new_ka.sa.sa_restorer = (void (*)(void)) sa_restorer;
178 siginitset(&new_ka.sa.sa_mask, mask);
179 }
180
181 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
182
183 if (!ret && oact) {
184 sa_handler = (unsigned long) old_ka.sa.sa_handler;
185 sa_restorer = (unsigned long) old_ka.sa.sa_restorer;
186 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) ||
187 __put_user(sa_handler, &oact->sa_handler) ||
188 __put_user(sa_restorer, &oact->sa_restorer) ||
189 __put_user(old_ka.sa.sa_flags, &oact->sa_flags) ||
190 __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask))
191 return -EFAULT;
192 }
193
194 return ret;
195}
196
197asmlinkage long
198sys32_rt_sigaction(int sig, const struct sigaction32 __user *act,
199 struct sigaction32 __user *oact, size_t sigsetsize)
200{
201 struct k_sigaction new_ka, old_ka;
202 unsigned long sa_handler;
203 int ret;
204 compat_sigset_t set32;
205
206 /* XXX: Don't preclude handling different sized sigset_t's. */
207 if (sigsetsize != sizeof(compat_sigset_t))
208 return -EINVAL;
209
210 if (act) {
211 ret = get_user(sa_handler, &act->sa_handler);
212 ret |= __copy_from_user(&set32, &act->sa_mask,
213 sizeof(compat_sigset_t));
214 new_ka.sa.sa_mask.sig[0] =
215 set32.sig[0] | (((long)set32.sig[1]) << 32);
216 ret |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
217
218 if (ret)
219 return -EFAULT;
220 new_ka.sa.sa_handler = (__sighandler_t) sa_handler;
221 }
222
223 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
224
225 if (!ret && oact) {
226 set32.sig[1] = (old_ka.sa.sa_mask.sig[0] >> 32);
227 set32.sig[0] = old_ka.sa.sa_mask.sig[0];
228 ret = put_user((unsigned long)old_ka.sa.sa_handler, &oact->sa_handler);
229 ret |= __copy_to_user(&oact->sa_mask, &set32,
230 sizeof(compat_sigset_t));
231 ret |= __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
232 }
233
234 return ret;
235}
236
237asmlinkage long
238sys32_sigaltstack(const stack_t32 __user *uss, stack_t32 __user *uoss)
239{
240 struct pt_regs *regs = task_pt_regs(current);
241 stack_t kss, koss;
242 unsigned long ss_sp;
243 int ret, err = 0;
244 mm_segment_t old_fs = get_fs();
245
246 if (uss) {
247 if (!access_ok(VERIFY_READ, uss, sizeof(*uss)))
248 return -EFAULT;
249 err |= __get_user(ss_sp, &uss->ss_sp);
250 err |= __get_user(kss.ss_size, &uss->ss_size);
251 err |= __get_user(kss.ss_flags, &uss->ss_flags);
252 if (err)
253 return -EFAULT;
254 kss.ss_sp = (void __user *) ss_sp;
255 }
256
257 set_fs (KERNEL_DS);
258 ret = do_sigaltstack((stack_t __force __user *) (uss ? &kss : NULL),
259 (stack_t __force __user *) (uoss ? &koss : NULL),
260 regs->gprs[15]);
261 set_fs (old_fs);
262
263 if (!ret && uoss) {
264 if (!access_ok(VERIFY_WRITE, uoss, sizeof(*uoss)))
265 return -EFAULT;
266 ss_sp = (unsigned long) koss.ss_sp;
267 err |= __put_user(ss_sp, &uoss->ss_sp);
268 err |= __put_user(koss.ss_size, &uoss->ss_size);
269 err |= __put_user(koss.ss_flags, &uoss->ss_flags);
270 if (err)
271 return -EFAULT;
272 }
273 return ret;
274}
275
276static int save_sigregs32(struct pt_regs *regs, _sigregs32 __user *sregs) 160static int save_sigregs32(struct pt_regs *regs, _sigregs32 __user *sregs)
277{ 161{
278 _s390_regs_common32 regs32; 162 _s390_regs_common32 regs32;
@@ -380,10 +264,6 @@ asmlinkage long sys32_rt_sigreturn(void)
380 struct pt_regs *regs = task_pt_regs(current); 264 struct pt_regs *regs = task_pt_regs(current);
381 rt_sigframe32 __user *frame = (rt_sigframe32 __user *)regs->gprs[15]; 265 rt_sigframe32 __user *frame = (rt_sigframe32 __user *)regs->gprs[15];
382 sigset_t set; 266 sigset_t set;
383 stack_t st;
384 __u32 ss_sp;
385 int err;
386 mm_segment_t old_fs = get_fs();
387 267
388 if (!access_ok(VERIFY_READ, frame, sizeof(*frame))) 268 if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
389 goto badframe; 269 goto badframe;
@@ -394,15 +274,8 @@ asmlinkage long sys32_rt_sigreturn(void)
394 goto badframe; 274 goto badframe;
395 if (restore_sigregs_gprs_high(regs, frame->gprs_high)) 275 if (restore_sigregs_gprs_high(regs, frame->gprs_high))
396 goto badframe; 276 goto badframe;
397 err = __get_user(ss_sp, &frame->uc.uc_stack.ss_sp); 277 if (compat_restore_altstack(&frame->uc.uc_stack))
398 st.ss_sp = compat_ptr(ss_sp);
399 err |= __get_user(st.ss_size, &frame->uc.uc_stack.ss_size);
400 err |= __get_user(st.ss_flags, &frame->uc.uc_stack.ss_flags);
401 if (err)
402 goto badframe; 278 goto badframe;
403 set_fs (KERNEL_DS);
404 do_sigaltstack((stack_t __force __user *)&st, NULL, regs->gprs[15]);
405 set_fs (old_fs);
406 return regs->gprs[2]; 279 return regs->gprs[2];
407badframe: 280badframe:
408 force_sig(SIGSEGV, current); 281 force_sig(SIGSEGV, current);
@@ -530,10 +403,7 @@ static int setup_rt_frame32(int sig, struct k_sigaction *ka, siginfo_t *info,
530 /* Create the ucontext. */ 403 /* Create the ucontext. */
531 err |= __put_user(UC_EXTENDED, &frame->uc.uc_flags); 404 err |= __put_user(UC_EXTENDED, &frame->uc.uc_flags);
532 err |= __put_user(0, &frame->uc.uc_link); 405 err |= __put_user(0, &frame->uc.uc_link);
533 err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 406 err |= __compat_save_altstack(&frame->uc.uc_stack, regs->gprs[15]);
534 err |= __put_user(sas_ss_flags(regs->gprs[15]),
535 &frame->uc.uc_stack.ss_flags);
536 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
537 err |= save_sigregs32(regs, &frame->uc.uc_mcontext); 407 err |= save_sigregs32(regs, &frame->uc.uc_mcontext);
538 err |= save_sigregs_gprs_high(regs, frame->gprs_high); 408 err |= save_sigregs_gprs_high(regs, frame->gprs_high);
539 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 409 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
index 9b9a805656b5..c14faf39ae36 100644
--- a/arch/s390/kernel/compat_wrapper.S
+++ b/arch/s390/kernel/compat_wrapper.S
@@ -24,12 +24,6 @@ ENTRY(sys32_write_wrapper)
24 llgfr %r4,%r4 # size_t 24 llgfr %r4,%r4 # size_t
25 jg sys32_write # branch to system call 25 jg sys32_write # branch to system call
26 26
27ENTRY(sys32_open_wrapper)
28 llgtr %r2,%r2 # const char *
29 lgfr %r3,%r3 # int
30 lgfr %r4,%r4 # int
31 jg compat_sys_open # branch to system call
32
33ENTRY(sys32_close_wrapper) 27ENTRY(sys32_close_wrapper)
34 llgfr %r2,%r2 # unsigned int 28 llgfr %r2,%r2 # unsigned int
35 jg sys_close # branch to system call 29 jg sys_close # branch to system call
@@ -226,12 +220,6 @@ ENTRY(sys32_dup2_wrapper)
226 220
227#sys32_setsid_wrapper # void 221#sys32_setsid_wrapper # void
228 222
229ENTRY(sys32_sigaction_wrapper)
230 lgfr %r2,%r2 # int
231 llgtr %r3,%r3 # const struct old_sigaction *
232 llgtr %r4,%r4 # struct old_sigaction32 *
233 jg sys32_sigaction # branch to system call
234
235ENTRY(sys32_setreuid16_wrapper) 223ENTRY(sys32_setreuid16_wrapper)
236 llgfr %r2,%r2 # __kernel_old_uid_emu31_t 224 llgfr %r2,%r2 # __kernel_old_uid_emu31_t
237 llgfr %r3,%r3 # __kernel_old_uid_emu31_t 225 llgfr %r3,%r3 # __kernel_old_uid_emu31_t
@@ -396,17 +384,6 @@ ENTRY(sys32_syslog_wrapper)
396 lgfr %r4,%r4 # int 384 lgfr %r4,%r4 # int
397 jg sys_syslog # branch to system call 385 jg sys_syslog # branch to system call
398 386
399ENTRY(compat_sys_setitimer_wrapper)
400 lgfr %r2,%r2 # int
401 llgtr %r3,%r3 # struct itimerval_emu31 *
402 llgtr %r4,%r4 # struct itimerval_emu31 *
403 jg compat_sys_setitimer # branch to system call
404
405ENTRY(compat_sys_getitimer_wrapper)
406 lgfr %r2,%r2 # int
407 llgtr %r3,%r3 # struct itimerval_emu31 *
408 jg compat_sys_getitimer # branch to system call
409
410ENTRY(compat_sys_newstat_wrapper) 387ENTRY(compat_sys_newstat_wrapper)
411 llgtr %r2,%r2 # char * 388 llgtr %r2,%r2 # char *
412 llgtr %r3,%r3 # struct stat_emu31 * 389 llgtr %r3,%r3 # struct stat_emu31 *
@@ -424,13 +401,6 @@ ENTRY(compat_sys_newfstat_wrapper)
424 401
425#sys32_vhangup_wrapper # void 402#sys32_vhangup_wrapper # void
426 403
427ENTRY(compat_sys_wait4_wrapper)
428 lgfr %r2,%r2 # pid_t
429 llgtr %r3,%r3 # unsigned int *
430 lgfr %r4,%r4 # int
431 llgtr %r5,%r5 # struct rusage *
432 jg compat_sys_wait4 # branch to system call
433
434ENTRY(sys32_swapoff_wrapper) 404ENTRY(sys32_swapoff_wrapper)
435 llgtr %r2,%r2 # const char * 405 llgtr %r2,%r2 # const char *
436 jg sys_swapoff # branch to system call 406 jg sys_swapoff # branch to system call
@@ -474,12 +444,6 @@ ENTRY(sys32_mprotect_wrapper)
474 llgfr %r4,%r4 # unsigned long 444 llgfr %r4,%r4 # unsigned long
475 jg sys_mprotect # branch to system call 445 jg sys_mprotect # branch to system call
476 446
477ENTRY(compat_sys_sigprocmask_wrapper)
478 lgfr %r2,%r2 # int
479 llgtr %r3,%r3 # compat_old_sigset_t *
480 llgtr %r4,%r4 # compat_old_sigset_t *
481 jg compat_sys_sigprocmask # branch to system call
482
483ENTRY(sys_init_module_wrapper) 447ENTRY(sys_init_module_wrapper)
484 llgtr %r2,%r2 # void * 448 llgtr %r2,%r2 # void *
485 llgfr %r3,%r3 # unsigned long 449 llgfr %r3,%r3 # unsigned long
@@ -628,11 +592,6 @@ ENTRY(sys32_sched_get_priority_min_wrapper)
628 lgfr %r2,%r2 # int 592 lgfr %r2,%r2 # int
629 jg sys_sched_get_priority_min # branch to system call 593 jg sys_sched_get_priority_min # branch to system call
630 594
631ENTRY(sys32_sched_rr_get_interval_wrapper)
632 lgfr %r2,%r2 # pid_t
633 llgtr %r3,%r3 # struct compat_timespec *
634 jg sys32_sched_rr_get_interval # branch to system call
635
636ENTRY(compat_sys_nanosleep_wrapper) 595ENTRY(compat_sys_nanosleep_wrapper)
637 llgtr %r2,%r2 # struct compat_timespec * 596 llgtr %r2,%r2 # struct compat_timespec *
638 llgtr %r3,%r3 # struct compat_timespec * 597 llgtr %r3,%r3 # struct compat_timespec *
@@ -686,43 +645,6 @@ ENTRY(sys32_prctl_wrapper)
686 645
687#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue 646#sys32_rt_sigreturn_wrapper # done in rt_sigreturn_glue
688 647
689ENTRY(sys32_rt_sigaction_wrapper)
690 lgfr %r2,%r2 # int
691 llgtr %r3,%r3 # const struct sigaction_emu31 *
692 llgtr %r4,%r4 # const struct sigaction_emu31 *
693 llgfr %r5,%r5 # size_t
694 jg sys32_rt_sigaction # branch to system call
695
696ENTRY(sys32_rt_sigprocmask_wrapper)
697 lgfr %r2,%r2 # int
698 llgtr %r3,%r3 # old_sigset_emu31 *
699 llgtr %r4,%r4 # old_sigset_emu31 *
700 llgfr %r5,%r5 # size_t
701 jg sys32_rt_sigprocmask # branch to system call
702
703ENTRY(sys32_rt_sigpending_wrapper)
704 llgtr %r2,%r2 # sigset_emu31 *
705 llgfr %r3,%r3 # size_t
706 jg sys32_rt_sigpending # branch to system call
707
708ENTRY(compat_sys_rt_sigtimedwait_wrapper)
709 llgtr %r2,%r2 # const sigset_emu31_t *
710 llgtr %r3,%r3 # siginfo_emu31_t *
711 llgtr %r4,%r4 # const struct compat_timespec *
712 llgfr %r5,%r5 # size_t
713 jg compat_sys_rt_sigtimedwait # branch to system call
714
715ENTRY(sys32_rt_sigqueueinfo_wrapper)
716 lgfr %r2,%r2 # int
717 lgfr %r3,%r3 # int
718 llgtr %r4,%r4 # siginfo_emu31_t *
719 jg sys32_rt_sigqueueinfo # branch to system call
720
721ENTRY(compat_sys_rt_sigsuspend_wrapper)
722 llgtr %r2,%r2 # compat_sigset_t *
723 llgfr %r3,%r3 # compat_size_t
724 jg compat_sys_rt_sigsuspend
725
726ENTRY(sys32_pread64_wrapper) 648ENTRY(sys32_pread64_wrapper)
727 llgfr %r2,%r2 # unsigned int 649 llgfr %r2,%r2 # unsigned int
728 llgtr %r3,%r3 # char * 650 llgtr %r3,%r3 # char *
@@ -760,11 +682,6 @@ ENTRY(sys32_capset_wrapper)
760 llgtr %r3,%r3 # const cap_user_data_t 682 llgtr %r3,%r3 # const cap_user_data_t
761 jg sys_capset # branch to system call 683 jg sys_capset # branch to system call
762 684
763ENTRY(sys32_sigaltstack_wrapper)
764 llgtr %r2,%r2 # const stack_emu31_t *
765 llgtr %r3,%r3 # stack_emu31_t *
766 jg sys32_sigaltstack
767
768ENTRY(sys32_sendfile_wrapper) 685ENTRY(sys32_sendfile_wrapper)
769 lgfr %r2,%r2 # int 686 lgfr %r2,%r2 # int
770 lgfr %r3,%r3 # int 687 lgfr %r3,%r3 # int
@@ -921,16 +838,6 @@ ENTRY(sys32_fstat64_wrapper)
921 llgtr %r3,%r3 # struct stat64 * 838 llgtr %r3,%r3 # struct stat64 *
922 jg sys32_fstat64 # branch to system call 839 jg sys32_fstat64 # branch to system call
923 840
924ENTRY(compat_sys_futex_wrapper)
925 llgtr %r2,%r2 # u32 *
926 lgfr %r3,%r3 # int
927 lgfr %r4,%r4 # int
928 llgtr %r5,%r5 # struct compat_timespec *
929 llgtr %r6,%r6 # u32 *
930 lgf %r0,164(%r15) # int
931 stg %r0,160(%r15)
932 jg compat_sys_futex # branch to system call
933
934ENTRY(sys32_setxattr_wrapper) 841ENTRY(sys32_setxattr_wrapper)
935 llgtr %r2,%r2 # char * 842 llgtr %r2,%r2 # char *
936 llgtr %r3,%r3 # char * 843 llgtr %r3,%r3 # char *
@@ -1216,14 +1123,6 @@ ENTRY(sys32_remap_file_pages_wrapper)
1216 llgfr %r6,%r6 # unsigned long 1123 llgfr %r6,%r6 # unsigned long
1217 jg sys_remap_file_pages 1124 jg sys_remap_file_pages
1218 1125
1219ENTRY(compat_sys_waitid_wrapper)
1220 lgfr %r2,%r2 # int
1221 lgfr %r3,%r3 # pid_t
1222 llgtr %r4,%r4 # siginfo_emu31_t *
1223 lgfr %r5,%r5 # int
1224 llgtr %r6,%r6 # struct rusage_emu31 *
1225 jg compat_sys_waitid
1226
1227ENTRY(compat_sys_kexec_load_wrapper) 1126ENTRY(compat_sys_kexec_load_wrapper)
1228 llgfr %r2,%r2 # unsigned long 1127 llgfr %r2,%r2 # unsigned long
1229 llgfr %r3,%r3 # unsigned long 1128 llgfr %r3,%r3 # unsigned long
@@ -1253,13 +1152,6 @@ ENTRY(sys_inotify_rm_watch_wrapper)
1253 llgfr %r3,%r3 # u32 1152 llgfr %r3,%r3 # u32
1254 jg sys_inotify_rm_watch 1153 jg sys_inotify_rm_watch
1255 1154
1256ENTRY(compat_sys_openat_wrapper)
1257 llgfr %r2,%r2 # unsigned int
1258 llgtr %r3,%r3 # const char *
1259 lgfr %r4,%r4 # int
1260 lgfr %r5,%r5 # int
1261 jg compat_sys_openat
1262
1263ENTRY(sys_mkdirat_wrapper) 1155ENTRY(sys_mkdirat_wrapper)
1264 lgfr %r2,%r2 # int 1156 lgfr %r2,%r2 # int
1265 llgtr %r3,%r3 # const char * 1157 llgtr %r3,%r3 # const char *
@@ -1362,17 +1254,6 @@ ENTRY(sys_unshare_wrapper)
1362 llgfr %r2,%r2 # unsigned long 1254 llgfr %r2,%r2 # unsigned long
1363 jg sys_unshare 1255 jg sys_unshare
1364 1256
1365ENTRY(compat_sys_set_robust_list_wrapper)
1366 llgtr %r2,%r2 # struct compat_robust_list_head *
1367 llgfr %r3,%r3 # size_t
1368 jg compat_sys_set_robust_list
1369
1370ENTRY(compat_sys_get_robust_list_wrapper)
1371 lgfr %r2,%r2 # int
1372 llgtr %r3,%r3 # compat_uptr_t_t *
1373 llgtr %r4,%r4 # compat_size_t *
1374 jg compat_sys_get_robust_list
1375
1376ENTRY(sys_splice_wrapper) 1257ENTRY(sys_splice_wrapper)
1377 lgfr %r2,%r2 # int 1258 lgfr %r2,%r2 # int
1378 llgtr %r3,%r3 # loff_t * 1259 llgtr %r3,%r3 # loff_t *
@@ -1458,18 +1339,6 @@ ENTRY(sys_timerfd_create_wrapper)
1458 lgfr %r3,%r3 # int 1339 lgfr %r3,%r3 # int
1459 jg sys_timerfd_create 1340 jg sys_timerfd_create
1460 1341
1461ENTRY(compat_sys_timerfd_settime_wrapper)
1462 lgfr %r2,%r2 # int
1463 lgfr %r3,%r3 # int
1464 llgtr %r4,%r4 # struct compat_itimerspec *
1465 llgtr %r5,%r5 # struct compat_itimerspec *
1466 jg compat_sys_timerfd_settime
1467
1468ENTRY(compat_sys_timerfd_gettime_wrapper)
1469 lgfr %r2,%r2 # int
1470 llgtr %r3,%r3 # struct compat_itimerspec *
1471 jg compat_sys_timerfd_gettime
1472
1473ENTRY(compat_sys_signalfd4_wrapper) 1342ENTRY(compat_sys_signalfd4_wrapper)
1474 lgfr %r2,%r2 # int 1343 lgfr %r2,%r2 # int
1475 llgtr %r3,%r3 # compat_sigset_t * 1344 llgtr %r3,%r3 # compat_sigset_t *
@@ -1550,13 +1419,6 @@ ENTRY(compat_sys_pwritev_wrapper)
1550 llgfr %r6,%r6 # u32 1419 llgfr %r6,%r6 # u32
1551 jg compat_sys_pwritev # branch to system call 1420 jg compat_sys_pwritev # branch to system call
1552 1421
1553ENTRY(compat_sys_rt_tgsigqueueinfo_wrapper)
1554 lgfr %r2,%r2 # compat_pid_t
1555 lgfr %r3,%r3 # compat_pid_t
1556 lgfr %r4,%r4 # int
1557 llgtr %r5,%r5 # struct compat_siginfo *
1558 jg compat_sys_rt_tgsigqueueinfo_wrapper # branch to system call
1559
1560ENTRY(sys_perf_event_open_wrapper) 1422ENTRY(sys_perf_event_open_wrapper)
1561 llgtr %r2,%r2 # const struct perf_event_attr * 1423 llgtr %r2,%r2 # const struct perf_event_attr *
1562 lgfr %r3,%r3 # pid_t 1424 lgfr %r3,%r3 # pid_t
@@ -1607,12 +1469,6 @@ ENTRY(sys_name_to_handle_at_wrapper)
1607 lgfr %r6,%r6 # int 1469 lgfr %r6,%r6 # int
1608 jg sys_name_to_handle_at 1470 jg sys_name_to_handle_at
1609 1471
1610ENTRY(compat_sys_open_by_handle_at_wrapper)
1611 lgfr %r2,%r2 # int
1612 llgtr %r3,%r3 # struct file_handle __user *
1613 lgfr %r4,%r4 # int
1614 jg compat_sys_open_by_handle_at
1615
1616ENTRY(compat_sys_clock_adjtime_wrapper) 1472ENTRY(compat_sys_clock_adjtime_wrapper)
1617 lgfr %r2,%r2 # clockid_t (int) 1473 lgfr %r2,%r2 # clockid_t (int)
1618 llgtr %r3,%r3 # struct compat_timex __user * 1474 llgtr %r3,%r3 # struct compat_timex __user *
diff --git a/arch/s390/kernel/entry.h b/arch/s390/kernel/entry.h
index 2711936fe706..c3a736a3ed44 100644
--- a/arch/s390/kernel/entry.h
+++ b/arch/s390/kernel/entry.h
@@ -73,10 +73,6 @@ long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
73long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args); 73long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
74long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, 74long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
75 u32 len_low); 75 u32 len_low);
76long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
77long sys_sigaction(int sig, const struct old_sigaction __user *act,
78 struct old_sigaction __user *oact);
79long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
80long sys_sigreturn(void); 76long sys_sigreturn(void);
81long sys_rt_sigreturn(void); 77long sys_rt_sigreturn(void);
82long sys32_sigreturn(void); 78long sys32_sigreturn(void);
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
index c3ff70a7b247..9c6e747a5e1e 100644
--- a/arch/s390/kernel/signal.c
+++ b/arch/s390/kernel/signal.c
@@ -48,54 +48,6 @@ typedef struct
48 struct ucontext uc; 48 struct ucontext uc;
49} rt_sigframe; 49} rt_sigframe;
50 50
51/*
52 * Atomically swap in the new signal mask, and wait for a signal.
53 */
54SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask)
55{
56 sigset_t blocked;
57 siginitset(&blocked, mask);
58 return sigsuspend(&blocked);
59}
60
61SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act,
62 struct old_sigaction __user *, oact)
63{
64 struct k_sigaction new_ka, old_ka;
65 int ret;
66
67 if (act) {
68 old_sigset_t mask;
69 if (!access_ok(VERIFY_READ, act, sizeof(*act)) ||
70 __get_user(new_ka.sa.sa_handler, &act->sa_handler) ||
71 __get_user(new_ka.sa.sa_restorer, &act->sa_restorer) ||
72 __get_user(new_ka.sa.sa_flags, &act->sa_flags) ||
73 __get_user(mask, &act->sa_mask))
74 return -EFAULT;
75 siginitset(&new_ka.sa.sa_mask, mask);
76 }
77
78 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
79
80 if (!ret && oact) {
81 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)) ||
82 __put_user(old_ka.sa.sa_handler, &oact->sa_handler) ||
83 __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer) ||
84 __put_user(old_ka.sa.sa_flags, &oact->sa_flags) ||
85 __put_user(old_ka.sa.sa_mask.sig[0], &oact->sa_mask))
86 return -EFAULT;
87 }
88
89 return ret;
90}
91
92SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss,
93 stack_t __user *, uoss)
94{
95 struct pt_regs *regs = task_pt_regs(current);
96 return do_sigaltstack(uss, uoss, regs->gprs[15]);
97}
98
99/* Returns non-zero on fault. */ 51/* Returns non-zero on fault. */
100static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs) 52static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
101{ 53{
@@ -190,8 +142,7 @@ SYSCALL_DEFINE0(rt_sigreturn)
190 set_current_blocked(&set); 142 set_current_blocked(&set);
191 if (restore_sigregs(regs, &frame->uc.uc_mcontext)) 143 if (restore_sigregs(regs, &frame->uc.uc_mcontext))
192 goto badframe; 144 goto badframe;
193 if (do_sigaltstack(&frame->uc.uc_stack, NULL, 145 if (restore_altstack(&frame->uc.uc_stack))
194 regs->gprs[15]) == -EFAULT)
195 goto badframe; 146 goto badframe;
196 return regs->gprs[2]; 147 return regs->gprs[2];
197badframe: 148badframe:
@@ -325,10 +276,7 @@ static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
325 /* Create the ucontext. */ 276 /* Create the ucontext. */
326 err |= __put_user(0, &frame->uc.uc_flags); 277 err |= __put_user(0, &frame->uc.uc_flags);
327 err |= __put_user(NULL, &frame->uc.uc_link); 278 err |= __put_user(NULL, &frame->uc.uc_link);
328 err |= __put_user((void __user *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); 279 err |= __save_altstack(&frame->uc.uc_stack, regs->gprs[15]);
329 err |= __put_user(sas_ss_flags(regs->gprs[15]),
330 &frame->uc.uc_stack.ss_flags);
331 err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);
332 err |= save_sigregs(regs, &frame->uc.uc_mcontext); 280 err |= save_sigregs(regs, &frame->uc.uc_mcontext);
333 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set)); 281 err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));
334 if (err) 282 if (err)
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S
index 6a6c61f94dd3..aaac708aa110 100644
--- a/arch/s390/kernel/syscalls.S
+++ b/arch/s390/kernel/syscalls.S
@@ -13,7 +13,7 @@ SYSCALL(sys_exit,sys_exit,sys32_exit_wrapper)
13SYSCALL(sys_fork,sys_fork,sys_fork) 13SYSCALL(sys_fork,sys_fork,sys_fork)
14SYSCALL(sys_read,sys_read,sys32_read_wrapper) 14SYSCALL(sys_read,sys_read,sys32_read_wrapper)
15SYSCALL(sys_write,sys_write,sys32_write_wrapper) 15SYSCALL(sys_write,sys_write,sys32_write_wrapper)
16SYSCALL(sys_open,sys_open,sys32_open_wrapper) /* 5 */ 16SYSCALL(sys_open,sys_open,compat_sys_open) /* 5 */
17SYSCALL(sys_close,sys_close,sys32_close_wrapper) 17SYSCALL(sys_close,sys_close,sys32_close_wrapper)
18SYSCALL(sys_restart_syscall,sys_restart_syscall,sys_restart_syscall) 18SYSCALL(sys_restart_syscall,sys_restart_syscall,sys_restart_syscall)
19SYSCALL(sys_creat,sys_creat,sys32_creat_wrapper) 19SYSCALL(sys_creat,sys_creat,sys32_creat_wrapper)
@@ -75,7 +75,7 @@ SYSCALL(sys_dup2,sys_dup2,sys32_dup2_wrapper)
75SYSCALL(sys_getppid,sys_getppid,sys_getppid) 75SYSCALL(sys_getppid,sys_getppid,sys_getppid)
76SYSCALL(sys_getpgrp,sys_getpgrp,sys_getpgrp) /* 65 */ 76SYSCALL(sys_getpgrp,sys_getpgrp,sys_getpgrp) /* 65 */
77SYSCALL(sys_setsid,sys_setsid,sys_setsid) 77SYSCALL(sys_setsid,sys_setsid,sys_setsid)
78SYSCALL(sys_sigaction,sys_sigaction,sys32_sigaction_wrapper) 78SYSCALL(sys_sigaction,sys_sigaction,compat_sys_sigaction)
79NI_SYSCALL /* old sgetmask syscall*/ 79NI_SYSCALL /* old sgetmask syscall*/
80NI_SYSCALL /* old ssetmask syscall*/ 80NI_SYSCALL /* old ssetmask syscall*/
81SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */ 81SYSCALL(sys_setreuid16,sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */
@@ -112,8 +112,8 @@ SYSCALL(sys_fstatfs,sys_fstatfs,compat_sys_fstatfs_wrapper) /* 100 */
112NI_SYSCALL /* ioperm for i386 */ 112NI_SYSCALL /* ioperm for i386 */
113SYSCALL(sys_socketcall,sys_socketcall,compat_sys_socketcall_wrapper) 113SYSCALL(sys_socketcall,sys_socketcall,compat_sys_socketcall_wrapper)
114SYSCALL(sys_syslog,sys_syslog,sys32_syslog_wrapper) 114SYSCALL(sys_syslog,sys_syslog,sys32_syslog_wrapper)
115SYSCALL(sys_setitimer,sys_setitimer,compat_sys_setitimer_wrapper) 115SYSCALL(sys_setitimer,sys_setitimer,compat_sys_setitimer)
116SYSCALL(sys_getitimer,sys_getitimer,compat_sys_getitimer_wrapper) /* 105 */ 116SYSCALL(sys_getitimer,sys_getitimer,compat_sys_getitimer) /* 105 */
117SYSCALL(sys_newstat,sys_newstat,compat_sys_newstat_wrapper) 117SYSCALL(sys_newstat,sys_newstat,compat_sys_newstat_wrapper)
118SYSCALL(sys_newlstat,sys_newlstat,compat_sys_newlstat_wrapper) 118SYSCALL(sys_newlstat,sys_newlstat,compat_sys_newlstat_wrapper)
119SYSCALL(sys_newfstat,sys_newfstat,compat_sys_newfstat_wrapper) 119SYSCALL(sys_newfstat,sys_newfstat,compat_sys_newfstat_wrapper)
@@ -122,7 +122,7 @@ SYSCALL(sys_lookup_dcookie,sys_lookup_dcookie,sys32_lookup_dcookie_wrapper) /* 1
122SYSCALL(sys_vhangup,sys_vhangup,sys_vhangup) 122SYSCALL(sys_vhangup,sys_vhangup,sys_vhangup)
123NI_SYSCALL /* old "idle" system call */ 123NI_SYSCALL /* old "idle" system call */
124NI_SYSCALL /* vm86old for i386 */ 124NI_SYSCALL /* vm86old for i386 */
125SYSCALL(sys_wait4,sys_wait4,compat_sys_wait4_wrapper) 125SYSCALL(sys_wait4,sys_wait4,compat_sys_wait4)
126SYSCALL(sys_swapoff,sys_swapoff,sys32_swapoff_wrapper) /* 115 */ 126SYSCALL(sys_swapoff,sys_swapoff,sys32_swapoff_wrapper) /* 115 */
127SYSCALL(sys_sysinfo,sys_sysinfo,compat_sys_sysinfo_wrapper) 127SYSCALL(sys_sysinfo,sys_sysinfo,compat_sys_sysinfo_wrapper)
128SYSCALL(sys_s390_ipc,sys_s390_ipc,sys32_ipc_wrapper) 128SYSCALL(sys_s390_ipc,sys_s390_ipc,sys32_ipc_wrapper)
@@ -134,7 +134,7 @@ SYSCALL(sys_newuname,sys_newuname,sys32_newuname_wrapper)
134NI_SYSCALL /* modify_ldt for i386 */ 134NI_SYSCALL /* modify_ldt for i386 */
135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) 135SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper)
136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */ 136SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
137SYSCALL(sys_sigprocmask,sys_sigprocmask,compat_sys_sigprocmask_wrapper) 137SYSCALL(sys_sigprocmask,sys_sigprocmask,compat_sys_sigprocmask)
138NI_SYSCALL /* old "create module" */ 138NI_SYSCALL /* old "create module" */
139SYSCALL(sys_init_module,sys_init_module,sys_init_module_wrapper) 139SYSCALL(sys_init_module,sys_init_module,sys_init_module_wrapper)
140SYSCALL(sys_delete_module,sys_delete_module,sys_delete_module_wrapper) 140SYSCALL(sys_delete_module,sys_delete_module,sys_delete_module_wrapper)
@@ -169,7 +169,7 @@ SYSCALL(sys_sched_getscheduler,sys_sched_getscheduler,sys32_sched_getscheduler_w
169SYSCALL(sys_sched_yield,sys_sched_yield,sys_sched_yield) 169SYSCALL(sys_sched_yield,sys_sched_yield,sys_sched_yield)
170SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max,sys32_sched_get_priority_max_wrapper) 170SYSCALL(sys_sched_get_priority_max,sys_sched_get_priority_max,sys32_sched_get_priority_max_wrapper)
171SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min,sys32_sched_get_priority_min_wrapper) /* 160 */ 171SYSCALL(sys_sched_get_priority_min,sys_sched_get_priority_min,sys32_sched_get_priority_min_wrapper) /* 160 */
172SYSCALL(sys_sched_rr_get_interval,sys_sched_rr_get_interval,sys32_sched_rr_get_interval_wrapper) 172SYSCALL(sys_sched_rr_get_interval,sys_sched_rr_get_interval,compat_sys_sched_rr_get_interval)
173SYSCALL(sys_nanosleep,sys_nanosleep,compat_sys_nanosleep_wrapper) 173SYSCALL(sys_nanosleep,sys_nanosleep,compat_sys_nanosleep_wrapper)
174SYSCALL(sys_mremap,sys_mremap,sys32_mremap_wrapper) 174SYSCALL(sys_mremap,sys_mremap,sys32_mremap_wrapper)
175SYSCALL(sys_setresuid16,sys_ni_syscall,sys32_setresuid16_wrapper) /* old setresuid16 syscall */ 175SYSCALL(sys_setresuid16,sys_ni_syscall,sys32_setresuid16_wrapper) /* old setresuid16 syscall */
@@ -182,19 +182,19 @@ SYSCALL(sys_setresgid16,sys_ni_syscall,sys32_setresgid16_wrapper) /* 170 old set
182SYSCALL(sys_getresgid16,sys_ni_syscall,sys32_getresgid16_wrapper) /* old getresgid16 syscall */ 182SYSCALL(sys_getresgid16,sys_ni_syscall,sys32_getresgid16_wrapper) /* old getresgid16 syscall */
183SYSCALL(sys_prctl,sys_prctl,sys32_prctl_wrapper) 183SYSCALL(sys_prctl,sys_prctl,sys32_prctl_wrapper)
184SYSCALL(sys_rt_sigreturn,sys_rt_sigreturn,sys32_rt_sigreturn) 184SYSCALL(sys_rt_sigreturn,sys_rt_sigreturn,sys32_rt_sigreturn)
185SYSCALL(sys_rt_sigaction,sys_rt_sigaction,sys32_rt_sigaction_wrapper) 185SYSCALL(sys_rt_sigaction,sys_rt_sigaction,compat_sys_rt_sigaction)
186SYSCALL(sys_rt_sigprocmask,sys_rt_sigprocmask,sys32_rt_sigprocmask_wrapper) /* 175 */ 186SYSCALL(sys_rt_sigprocmask,sys_rt_sigprocmask,compat_sys_rt_sigprocmask) /* 175 */
187SYSCALL(sys_rt_sigpending,sys_rt_sigpending,sys32_rt_sigpending_wrapper) 187SYSCALL(sys_rt_sigpending,sys_rt_sigpending,compat_sys_rt_sigpending)
188SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait_wrapper) 188SYSCALL(sys_rt_sigtimedwait,sys_rt_sigtimedwait,compat_sys_rt_sigtimedwait)
189SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,sys32_rt_sigqueueinfo_wrapper) 189SYSCALL(sys_rt_sigqueueinfo,sys_rt_sigqueueinfo,compat_sys_rt_sigqueueinfo)
190SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend_wrapper) 190SYSCALL(sys_rt_sigsuspend,sys_rt_sigsuspend,compat_sys_rt_sigsuspend)
191SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper) /* 180 */ 191SYSCALL(sys_pread64,sys_pread64,sys32_pread64_wrapper) /* 180 */
192SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper) 192SYSCALL(sys_pwrite64,sys_pwrite64,sys32_pwrite64_wrapper)
193SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* old chown16 syscall */ 193SYSCALL(sys_chown16,sys_ni_syscall,sys32_chown16_wrapper) /* old chown16 syscall */
194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper) 194SYSCALL(sys_getcwd,sys_getcwd,sys32_getcwd_wrapper)
195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper) 195SYSCALL(sys_capget,sys_capget,sys32_capget_wrapper)
196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */ 196SYSCALL(sys_capset,sys_capset,sys32_capset_wrapper) /* 185 */
197SYSCALL(sys_sigaltstack,sys_sigaltstack,sys32_sigaltstack_wrapper) 197SYSCALL(sys_sigaltstack,sys_sigaltstack,compat_sys_sigaltstack)
198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper) 198SYSCALL(sys_sendfile,sys_sendfile64,sys32_sendfile_wrapper)
199NI_SYSCALL /* streams1 */ 199NI_SYSCALL /* streams1 */
200NI_SYSCALL /* streams2 */ 200NI_SYSCALL /* streams2 */
@@ -246,7 +246,7 @@ SYSCALL(sys_lremovexattr,sys_lremovexattr,sys32_lremovexattr_wrapper)
246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */ 246SYSCALL(sys_fremovexattr,sys_fremovexattr,sys32_fremovexattr_wrapper) /* 235 */
247SYSCALL(sys_gettid,sys_gettid,sys_gettid) 247SYSCALL(sys_gettid,sys_gettid,sys_gettid)
248SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper) 248SYSCALL(sys_tkill,sys_tkill,sys_tkill_wrapper)
249SYSCALL(sys_futex,sys_futex,compat_sys_futex_wrapper) 249SYSCALL(sys_futex,sys_futex,compat_sys_futex)
250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper) 250SYSCALL(sys_sched_setaffinity,sys_sched_setaffinity,sys32_sched_setaffinity_wrapper)
251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */ 251SYSCALL(sys_sched_getaffinity,sys_sched_getaffinity,sys32_sched_getaffinity_wrapper) /* 240 */
252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper) 252SYSCALL(sys_tgkill,sys_tgkill,sys_tgkill_wrapper)
@@ -289,14 +289,14 @@ SYSCALL(sys_kexec_load,sys_kexec_load,compat_sys_kexec_load_wrapper)
289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper) 289SYSCALL(sys_add_key,sys_add_key,compat_sys_add_key_wrapper)
290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper) 290SYSCALL(sys_request_key,sys_request_key,compat_sys_request_key_wrapper)
291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */ 291SYSCALL(sys_keyctl,sys_keyctl,compat_sys_keyctl_wrapper) /* 280 */
292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid_wrapper) 292SYSCALL(sys_waitid,sys_waitid,compat_sys_waitid)
293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper) 293SYSCALL(sys_ioprio_set,sys_ioprio_set,sys_ioprio_set_wrapper)
294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper) 294SYSCALL(sys_ioprio_get,sys_ioprio_get,sys_ioprio_get_wrapper)
295SYSCALL(sys_inotify_init,sys_inotify_init,sys_inotify_init) 295SYSCALL(sys_inotify_init,sys_inotify_init,sys_inotify_init)
296SYSCALL(sys_inotify_add_watch,sys_inotify_add_watch,sys_inotify_add_watch_wrapper) /* 285 */ 296SYSCALL(sys_inotify_add_watch,sys_inotify_add_watch,sys_inotify_add_watch_wrapper) /* 285 */
297SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch,sys_inotify_rm_watch_wrapper) 297SYSCALL(sys_inotify_rm_watch,sys_inotify_rm_watch,sys_inotify_rm_watch_wrapper)
298NI_SYSCALL /* 287 sys_migrate_pages */ 298NI_SYSCALL /* 287 sys_migrate_pages */
299SYSCALL(sys_openat,sys_openat,compat_sys_openat_wrapper) 299SYSCALL(sys_openat,sys_openat,compat_sys_openat)
300SYSCALL(sys_mkdirat,sys_mkdirat,sys_mkdirat_wrapper) 300SYSCALL(sys_mkdirat,sys_mkdirat,sys_mkdirat_wrapper)
301SYSCALL(sys_mknodat,sys_mknodat,sys_mknodat_wrapper) /* 290 */ 301SYSCALL(sys_mknodat,sys_mknodat,sys_mknodat_wrapper) /* 290 */
302SYSCALL(sys_fchownat,sys_fchownat,sys_fchownat_wrapper) 302SYSCALL(sys_fchownat,sys_fchownat,sys_fchownat_wrapper)
@@ -312,8 +312,8 @@ SYSCALL(sys_faccessat,sys_faccessat,sys_faccessat_wrapper) /* 300 */
312SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper) 312SYSCALL(sys_pselect6,sys_pselect6,compat_sys_pselect6_wrapper)
313SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper) 313SYSCALL(sys_ppoll,sys_ppoll,compat_sys_ppoll_wrapper)
314SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper) 314SYSCALL(sys_unshare,sys_unshare,sys_unshare_wrapper)
315SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list_wrapper) 315SYSCALL(sys_set_robust_list,sys_set_robust_list,compat_sys_set_robust_list)
316SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list_wrapper) 316SYSCALL(sys_get_robust_list,sys_get_robust_list,compat_sys_get_robust_list)
317SYSCALL(sys_splice,sys_splice,sys_splice_wrapper) 317SYSCALL(sys_splice,sys_splice,sys_splice_wrapper)
318SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper) 318SYSCALL(sys_sync_file_range,sys_sync_file_range,sys_sync_file_range_wrapper)
319SYSCALL(sys_tee,sys_tee,sys_tee_wrapper) 319SYSCALL(sys_tee,sys_tee,sys_tee_wrapper)
@@ -328,8 +328,8 @@ SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
328NI_SYSCALL /* 317 old sys_timer_fd */ 328NI_SYSCALL /* 317 old sys_timer_fd */
329SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper) 329SYSCALL(sys_eventfd,sys_eventfd,sys_eventfd_wrapper)
330SYSCALL(sys_timerfd_create,sys_timerfd_create,sys_timerfd_create_wrapper) 330SYSCALL(sys_timerfd_create,sys_timerfd_create,sys_timerfd_create_wrapper)
331SYSCALL(sys_timerfd_settime,sys_timerfd_settime,compat_sys_timerfd_settime_wrapper) /* 320 */ 331SYSCALL(sys_timerfd_settime,sys_timerfd_settime,compat_sys_timerfd_settime) /* 320 */
332SYSCALL(sys_timerfd_gettime,sys_timerfd_gettime,compat_sys_timerfd_gettime_wrapper) 332SYSCALL(sys_timerfd_gettime,sys_timerfd_gettime,compat_sys_timerfd_gettime)
333SYSCALL(sys_signalfd4,sys_signalfd4,compat_sys_signalfd4_wrapper) 333SYSCALL(sys_signalfd4,sys_signalfd4,compat_sys_signalfd4_wrapper)
334SYSCALL(sys_eventfd2,sys_eventfd2,sys_eventfd2_wrapper) 334SYSCALL(sys_eventfd2,sys_eventfd2,sys_eventfd2_wrapper)
335SYSCALL(sys_inotify_init1,sys_inotify_init1,sys_inotify_init1_wrapper) 335SYSCALL(sys_inotify_init1,sys_inotify_init1,sys_inotify_init1_wrapper)
@@ -338,13 +338,13 @@ SYSCALL(sys_dup3,sys_dup3,sys_dup3_wrapper)
338SYSCALL(sys_epoll_create1,sys_epoll_create1,sys_epoll_create1_wrapper) 338SYSCALL(sys_epoll_create1,sys_epoll_create1,sys_epoll_create1_wrapper)
339SYSCALL(sys_preadv,sys_preadv,compat_sys_preadv_wrapper) 339SYSCALL(sys_preadv,sys_preadv,compat_sys_preadv_wrapper)
340SYSCALL(sys_pwritev,sys_pwritev,compat_sys_pwritev_wrapper) 340SYSCALL(sys_pwritev,sys_pwritev,compat_sys_pwritev_wrapper)
341SYSCALL(sys_rt_tgsigqueueinfo,sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo_wrapper) /* 330 */ 341SYSCALL(sys_rt_tgsigqueueinfo,sys_rt_tgsigqueueinfo,compat_sys_rt_tgsigqueueinfo) /* 330 */
342SYSCALL(sys_perf_event_open,sys_perf_event_open,sys_perf_event_open_wrapper) 342SYSCALL(sys_perf_event_open,sys_perf_event_open,sys_perf_event_open_wrapper)
343SYSCALL(sys_fanotify_init,sys_fanotify_init,sys_fanotify_init_wrapper) 343SYSCALL(sys_fanotify_init,sys_fanotify_init,sys_fanotify_init_wrapper)
344SYSCALL(sys_fanotify_mark,sys_fanotify_mark,sys_fanotify_mark_wrapper) 344SYSCALL(sys_fanotify_mark,sys_fanotify_mark,sys_fanotify_mark_wrapper)
345SYSCALL(sys_prlimit64,sys_prlimit64,sys_prlimit64_wrapper) 345SYSCALL(sys_prlimit64,sys_prlimit64,sys_prlimit64_wrapper)
346SYSCALL(sys_name_to_handle_at,sys_name_to_handle_at,sys_name_to_handle_at_wrapper) /* 335 */ 346SYSCALL(sys_name_to_handle_at,sys_name_to_handle_at,sys_name_to_handle_at_wrapper) /* 335 */
347SYSCALL(sys_open_by_handle_at,sys_open_by_handle_at,compat_sys_open_by_handle_at_wrapper) 347SYSCALL(sys_open_by_handle_at,sys_open_by_handle_at,compat_sys_open_by_handle_at)
348SYSCALL(sys_clock_adjtime,sys_clock_adjtime,compat_sys_clock_adjtime_wrapper) 348SYSCALL(sys_clock_adjtime,sys_clock_adjtime,compat_sys_clock_adjtime_wrapper)
349SYSCALL(sys_syncfs,sys_syncfs,sys_syncfs_wrapper) 349SYSCALL(sys_syncfs,sys_syncfs,sys_syncfs_wrapper)
350SYSCALL(sys_setns,sys_setns,sys_setns_wrapper) 350SYSCALL(sys_setns,sys_setns,sys_setns_wrapper)