• Ralf Baechle's avatar
    [MIPS] Avoid double signal restarting. · 13fdd31a
    Ralf Baechle authored
    In entry.S resume_userspace ... jal do_notify_resume form a loop through
    which the kernel will iterate as long as work is pending.  If we
    iterate through this loop more than once with no signal pending for at
    least one but the last iteration we will take do the syscall restarting
    multiple times resulting in a syscall return prior to the the syscall
    instruction in userspace.  This may happen when debugging a multithreaded
    program.
    
    Debugging and original fix by Maciej; extended to other ABIs by me.
    Signed-off-by: default avatarMaciej W. Rozycki <macro@mips.com>
    Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    13fdd31a
signal.c 12.7 KB