Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f13621a authored by Al Viro's avatar Al Viro
Browse files

sigpending(): move compat to native



... and kill set_fs() use

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d9e968cb
Loading
Loading
Loading
Loading
+0 −23
Original line number Diff line number Diff line
@@ -350,29 +350,6 @@ COMPAT_SYSCALL_DEFINE3(setitimer, int, which,
	return 0;
}

#ifdef __ARCH_WANT_SYS_SIGPENDING

/*
 * Assumption: old_sigset_t and compat_old_sigset_t are both
 * types that can be passed to put_user()/get_user().
 */

COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set)
{
	old_sigset_t s;
	long ret;
	mm_segment_t old_fs = get_fs();

	set_fs(KERNEL_DS);
	ret = sys_sigpending((old_sigset_t __user *) &s);
	set_fs(old_fs);
	if (ret == 0)
		ret = put_user(s, set);
	return ret;
}

#endif

#ifdef __ARCH_WANT_SYS_SIGPROCMASK

/*
+12 −0
Original line number Diff line number Diff line
@@ -3254,6 +3254,18 @@ SYSCALL_DEFINE1(sigpending, old_sigset_t __user *, set)
	return sys_rt_sigpending((sigset_t __user *)set, sizeof(old_sigset_t)); 
}

#ifdef CONFIG_COMPAT
COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set32)
{
	sigset_t set;
	int err = do_sigpending(&set, sizeof(old_sigset_t)); 
	if (err == 0)
		if (copy_to_user(set32, &set, sizeof(old_sigset_t)))
			err = -EFAULT;
	return err;
}
#endif

#endif

#ifdef __ARCH_WANT_SYS_SIGPROCMASK