• David Howells's avatar
    [PATCH] Handle TIF_RESTORE_SIGMASK for i386 · 283828f3
    David Howells authored
    Handle TIF_RESTORE_SIGMASK as added by David Woodhouse's patch entitled:
    
            [PATCH] 2/3 Add TIF_RESTORE_SIGMASK support for arch/powerpc
            [PATCH] 3/3 Generic sys_rt_sigsuspend
    
    It does the following:
    
     (1) Declares TIF_RESTORE_SIGMASK for i386.
    
     (2) Invokes it over to do_signal() when TIF_RESTORE_SIGMASK is set.
    
     (3) Makes do_signal() support TIF_RESTORE_SIGMASK, using the signal mask saved
         in current->saved_sigmask.
    
     (4) Discards sys_rt_sigsuspend() from the arch, using the generic one instead.
    
     (5) Makes sys_sigsuspend() save the signal mask and set TIF_RESTORE_SIGMASK
         rather than attempting to fudge the return registers.
    
     (6) Makes sys_sigsuspend() return -ERESTARTNOHAND rather than looping
         intrinsically.
    
     (7) Makes setup_frame(), setup_rt_frame() and handle_signal() return 0 or
         -EFAULT rather than true/false to be consistent with the rest of the
         kernel.
    
    Due to the fact do_signal() is then only called from one place:
    
     (8) Makes do_signal() no longer have a return value is it was just being
         ignored; force_sig() takes care of this.
    
     (9) Discards the old sigmask argument to do_signal() as it's no longer
         necessary.
    
    (10) Makes do_signal() static.
    
    (11) Marks the second argument to do_notify_resume() as unused. The unused
         argument should remain in the middle as the arguments are passed in as
         registers, and the ordering is specific in entry.S
    
    Given the way do_signal() is now no longer called from sys_{,rt_}sigsuspend(),
    they no longer need access to the exception frame, and so can just take
    arguments normally.
    
    This patch depends on sys_rt_sigsuspend patch.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    283828f3
unistd.h 13.8 KB