diff options
Diffstat (limited to 'arch/s390/kernel/compat_linux.c')
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index cabb4ff54cd7..785c9f70ac98 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -409,7 +409,7 @@ asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info) | |||
409 | mm_segment_t old_fs = get_fs (); | 409 | mm_segment_t old_fs = get_fs (); |
410 | 410 | ||
411 | set_fs (KERNEL_DS); | 411 | set_fs (KERNEL_DS); |
412 | ret = sys_sysinfo(&s); | 412 | ret = sys_sysinfo((struct sysinfo __user *) &s); |
413 | set_fs (old_fs); | 413 | set_fs (old_fs); |
414 | err = put_user (s.uptime, &info->uptime); | 414 | err = put_user (s.uptime, &info->uptime); |
415 | err |= __put_user (s.loads[0], &info->loads[0]); | 415 | err |= __put_user (s.loads[0], &info->loads[0]); |
@@ -438,7 +438,7 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, | |||
438 | mm_segment_t old_fs = get_fs (); | 438 | mm_segment_t old_fs = get_fs (); |
439 | 439 | ||
440 | set_fs (KERNEL_DS); | 440 | set_fs (KERNEL_DS); |
441 | ret = sys_sched_rr_get_interval(pid, &t); | 441 | ret = sys_sched_rr_get_interval(pid, (struct timespec __user *) &t); |
442 | set_fs (old_fs); | 442 | set_fs (old_fs); |
443 | if (put_compat_timespec(&t, interval)) | 443 | if (put_compat_timespec(&t, interval)) |
444 | return -EFAULT; | 444 | return -EFAULT; |
@@ -464,7 +464,10 @@ asmlinkage long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, | |||
464 | } | 464 | } |
465 | } | 465 | } |
466 | set_fs (KERNEL_DS); | 466 | set_fs (KERNEL_DS); |
467 | ret = sys_rt_sigprocmask(how, set ? &s : NULL, oset ? &s : NULL, sigsetsize); | 467 | ret = sys_rt_sigprocmask(how, |
468 | set ? (sigset_t __user *) &s : NULL, | ||
469 | oset ? (sigset_t __user *) &s : NULL, | ||
470 | sigsetsize); | ||
468 | set_fs (old_fs); | 471 | set_fs (old_fs); |
469 | if (ret) return ret; | 472 | if (ret) return ret; |
470 | if (oset) { | 473 | if (oset) { |
@@ -489,7 +492,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set, | |||
489 | mm_segment_t old_fs = get_fs(); | 492 | mm_segment_t old_fs = get_fs(); |
490 | 493 | ||
491 | set_fs (KERNEL_DS); | 494 | set_fs (KERNEL_DS); |
492 | ret = sys_rt_sigpending(&s, sigsetsize); | 495 | ret = sys_rt_sigpending((sigset_t __user *) &s, sigsetsize); |
493 | set_fs (old_fs); | 496 | set_fs (old_fs); |
494 | if (!ret) { | 497 | if (!ret) { |
495 | switch (_NSIG_WORDS) { | 498 | switch (_NSIG_WORDS) { |
@@ -514,7 +517,7 @@ sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) | |||
514 | if (copy_siginfo_from_user32(&info, uinfo)) | 517 | if (copy_siginfo_from_user32(&info, uinfo)) |
515 | return -EFAULT; | 518 | return -EFAULT; |
516 | set_fs (KERNEL_DS); | 519 | set_fs (KERNEL_DS); |
517 | ret = sys_rt_sigqueueinfo(pid, sig, &info); | 520 | ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __user *) &info); |
518 | set_fs (old_fs); | 521 | set_fs (old_fs); |
519 | return ret; | 522 | return ret; |
520 | } | 523 | } |
@@ -674,7 +677,8 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offse | |||
674 | return -EFAULT; | 677 | return -EFAULT; |
675 | 678 | ||
676 | set_fs(KERNEL_DS); | 679 | set_fs(KERNEL_DS); |
677 | ret = sys_sendfile(out_fd, in_fd, offset ? &of : NULL, count); | 680 | ret = sys_sendfile(out_fd, in_fd, |
681 | offset ? (off_t __user *) &of : NULL, count); | ||
678 | set_fs(old_fs); | 682 | set_fs(old_fs); |
679 | 683 | ||
680 | if (offset && put_user(of, offset)) | 684 | if (offset && put_user(of, offset)) |
@@ -694,7 +698,8 @@ asmlinkage long sys32_sendfile64(int out_fd, int in_fd, | |||
694 | return -EFAULT; | 698 | return -EFAULT; |
695 | 699 | ||
696 | set_fs(KERNEL_DS); | 700 | set_fs(KERNEL_DS); |
697 | ret = sys_sendfile64(out_fd, in_fd, offset ? &lof : NULL, count); | 701 | ret = sys_sendfile64(out_fd, in_fd, |
702 | offset ? (loff_t __user *) &lof : NULL, count); | ||
698 | set_fs(old_fs); | 703 | set_fs(old_fs); |
699 | 704 | ||
700 | if (offset && put_user(lof, offset)) | 705 | if (offset && put_user(lof, offset)) |