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)) |
