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, &current->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.  */

Reply via email to