No functional changes, preparation. Change get_signal_to_deliver() so that ptrace_signal() is called even if utrace returns signr != 0.
I think this is more correct now, when ptrace is not implemented on top of utrace. When we change ptrace to use ->report_signal() ptrace_signal() should be killed/ifdefed anyway, so afaic this change will not interfere with utrace-ptrace. --- kernel/signal.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) --- MINI/kernel/signal.c~1_SIGNALS_TWEAK 2009-08-17 11:56:56.000000000 +0200 +++ MINI/kernel/signal.c 2009-08-25 15:51:42.000000000 +0200 @@ -1843,18 +1843,16 @@ relock: else { signr = dequeue_signal(current, ¤t->blocked, info); + ka = &sighand->action[signr-1]; + } - if (!signr) - break; /* will return 0 */ - - if (signr != SIGKILL) { - signr = ptrace_signal(signr, info, - regs, cookie); - if (!signr) - continue; - } + if (!signr) + break; /* will return 0 */ - ka = &sighand->action[signr-1]; + if (signr != SIGKILL) { + signr = ptrace_signal(signr, info, regs, cookie); + if (!signr) + continue; } if (ka->sa.sa_handler == SIG_IGN) /* Do nothing. */