Messages in this thread | | | Date | Tue, 29 Nov 2005 07:18:03 +0200 | From | Mika Penttilä <> | Subject | Re: [PATCH] 3/3 Generic sys_rt_sigsuspend |
| |
David Woodhouse wrote:
>The TIF_RESTORE_SIGMASK flag allows us to have a generic implementation >of sys_rt_sigsuspend() instead of duplicating it for each architecture. >This provides such an implementation and makes arch/powerpc use it. > >It also tidies up the ppc32 sys_sigsuspend() to use TIF_RESTORE_SIGMASK. > >Signed-off-by: David Woodhouse <dwmw2@infradead.org> > > > >+#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND >+long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize) >+{ >+ sigset_t saveset, newset; >+ >+ /* XXX: Don't preclude handling different sized sigset_t's. */ >+ if (sigsetsize != sizeof(sigset_t)) >+ return -EINVAL; >+ >+ if (copy_from_user(&newset, unewset, sizeof(newset))) >+ return -EFAULT; >+ sigdelsetmask(&newset, sigmask(SIGKILL)|sigmask(SIGSTOP)); >+ >+ spin_lock_irq(¤t->sighand->siglock); >+ saveset = current->blocked; >+ current->blocked = newset; >+ recalc_sigpending(); >+ spin_unlock_irq(¤t->sighand->siglock); >+ >+ current->state = TASK_INTERRUPTIBLE; >+ schedule(); >+ set_thread_flag(TIF_RESTORE_SIGMASK); >+ return -ERESTARTNOHAND; >+} >+#endif /* __ARCH_WANT_SYS_RT_SIGSUSPEND */ >+ > > You are not setting saved_sigmask here. And shouldn't it return -EINTR?
Thanks, Mika
- 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/
| |