From e2630dd6d6a0a7438492c1435cc801ff0d0576d6 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Mon, 20 Sep 2004 23:44:36 -0700 Subject: [PATCH] [SPARC64]: Update compat code for sys_waitid changes. Signed-off-by: David S. Miller --- arch/sparc64/kernel/sys_sparc32.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c index 80d65ffc00667..1c31a1fb8462e 100644 --- a/arch/sparc64/kernel/sys_sparc32.c +++ b/arch/sparc64/kernel/sys_sparc32.c @@ -1737,21 +1737,30 @@ sys32_timer_create(u32 clock, struct sigevent32 __user *se32, } asmlinkage long compat_sys_waitid(u32 which, u32 pid, - struct siginfo32 __user *uinfo, u32 options) + struct siginfo32 __user *uinfo, u32 options, + struct compat_rusage __user *uru) { siginfo_t info; + struct rusage ru; long ret; mm_segment_t old_fs = get_fs(); memset(&info, 0, sizeof(info)); set_fs (KERNEL_DS); - ret = sys_waitid((int)which, (compat_pid_t) pid, - (siginfo_t __user *) &info, (int) options); + ret = sys_waitid(which, pid, (siginfo_t __user *) &info, + options, uru ? &ru : NULL); set_fs (old_fs); if (ret < 0 || info.si_signo == 0) return ret; + + if (uru) { + ret = put_compat_rusage(&ru, uru); + if (ret) + return ret; + } + BUG_ON(info.si_code & __SI_MASK); info.si_code |= __SI_CHLD; return copy_siginfo_to_user32(uinfo, &info); -- 2.53.0