signal: Remove kernel interal si_code magic
[linux-2.6-microblaze.git] / arch / sparc / kernel / signal32.c
index b4096bb..0e4c08c 100644 (file)
@@ -85,34 +85,34 @@ int copy_siginfo_to_user32(compat_siginfo_t __user *to, const siginfo_t *from)
           at the same time.  */
        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);
+       err |= __put_user(from->si_code, &to->si_code);
        if (from->si_code < 0)
                err |= __copy_to_user(&to->_sifields._pad, &from->_sifields._pad, SI_PAD_SIZE);
        else {
-               switch (from->si_code >> 16) {
-               case __SI_TIMER >> 16:
+               switch (siginfo_layout(from->si_signo, from->si_code)) {
+               case SIL_TIMER:
                        err |= __put_user(from->si_tid, &to->si_tid);
                        err |= __put_user(from->si_overrun, &to->si_overrun);
                        err |= __put_user(from->si_int, &to->si_int);
                        break;
-               case __SI_CHLD >> 16:
+               case SIL_CHLD:
                        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:
+               case SIL_KILL:
                        err |= __put_user(from->si_pid, &to->si_pid);
                        err |= __put_user(from->si_uid, &to->si_uid);
                        break;
-               case __SI_FAULT >> 16:
+               case SIL_FAULT:
                        err |= __put_user(from->si_trapno, &to->si_trapno);
                        err |= __put_user((unsigned long)from->si_addr, &to->si_addr);
                        break;
-               case __SI_POLL >> 16:
+               case SIL_POLL:
                        err |= __put_user(from->si_band, &to->si_band);
                        err |= __put_user(from->si_fd, &to->si_fd);
                        break;
-               case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */
-               case __SI_MESGQ >> 16:
+               case SIL_RT:
                        err |= __put_user(from->si_pid, &to->si_pid);
                        err |= __put_user(from->si_uid, &to->si_uid);
                        err |= __put_user(from->si_int, &to->si_int);