[PATCH] Make CRIS use generic copy_siginfo_to_user

Stephen Rothwell (sfr@canb.auug.org.au)
Fri, 21 Jun 2002 16:27:33 +1000


Hi Linus,

The CRIS architecture is also able to use the generic
copy_siginfo_to_user.

Please apply.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

diff -ruN 2.5.24/arch/cris/kernel/signal.c 2.5.24-si.2/arch/cris/kernel/signal.c --- 2.5.24/arch/cris/kernel/signal.c Thu May 30 05:12:19 2002 +++ 2.5.24-si.2/arch/cris/kernel/signal.c Fri Jun 21 16:23:21 2002 @@ -43,42 +43,6 @@ int do_signal(int canrestart, sigset_t *oldset, struct pt_regs *regs); -int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from) -{ - if (!access_ok (VERIFY_WRITE, to, sizeof(siginfo_t))) - return -EFAULT; - if (from->si_code < 0) - return __copy_to_user(to, from, sizeof(siginfo_t)); - else { - int err; - - /* If you change siginfo_t structure, please be sure - this code is fixed accordingly. - It should never copy any pad contained in the structure - to avoid security leaks, but must copy the generic - 3 ints plus the relevant union member. */ - err = __put_user(from->si_signo, &to->si_signo); - err |= __put_user(from->si_errno, &to->si_errno); - err |= __put_user((short)from->si_code, &to->si_code); - /* First 32bits of unions are always present. */ - err |= __put_user(from->si_pid, &to->si_pid); - switch (from->si_code >> 16) { - case __SI_FAULT >> 16: - err |= __put_user(from->si_addr, &to->si_addr); - break; - case __SI_CHLD >> 16: - err |= __put_user(from->si_utime, &to->si_utime); - err |= __put_user(from->si_stime, &to->si_stime); - err |= __put_user(from->si_status, &to->si_status); - default: - err |= __put_user(from->si_uid, &to->si_uid); - break; - /* case __SI_RT: This is not generated by the kernel as of now. */ - } - return err; - } -} - /* * Atomically swap in the new signal mask, and wait for a signal. Define * dummy arguments to be able to reach the regs argument. (Note that this diff -ruN 2.5.24/include/asm-cris/siginfo.h 2.5.24-si.2/include/asm-cris/siginfo.h --- 2.5.24/include/asm-cris/siginfo.h Mon Jun 3 12:13:00 2002 +++ 2.5.24-si.2/include/asm-cris/siginfo.h Fri Jun 21 16:23:55 2002 @@ -1,8 +1,6 @@ #ifndef _CRIS_SIGINFO_H #define _CRIS_SIGINFO_H -#define HAVE_ARCH_COPY_SIGINFO_TO_USER - #include <asm-generic/siginfo.h> #endif - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/