ia64: ptrace_attach_sync_user_rbs: avoid "task->signal != NULL" checks
authorOleg Nesterov <[email protected]>
Wed, 26 May 2010 21:43:14 +0000 (14:43 -0700)
committerLinus Torvalds <[email protected]>
Thu, 27 May 2010 16:12:46 +0000 (09:12 -0700)
Preparation to make task->signal immutable, no functional changes.

It doesn't matter which pointer we check under tasklist to ensure the task
was not released, ->signal or ->sighand.  But we are going to make
->signal refcountable, change the code to use ->sighand.

Note: this code doesn't need this check and tasklist_lock at all, it
should be converted to use lock_task_sighand().  And, the code under
SIGNAL_STOP_STOPPED check looks wrong.

Signed-off-by: Oleg Nesterov <[email protected]>
Cc: Fenghua Yu <[email protected]>
Cc: Roland McGrath <[email protected]>
Cc: Stanislaw Gruszka <[email protected]>
Cc: Tony Luck <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
arch/ia64/kernel/ptrace.c

index 0dec7f702448a07b6fc520342969411423d6445a..7c7909f9bc938b1bda4f1ece171ebd962aec2cfd 100644 (file)
@@ -638,7 +638,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child)
         */
 
        read_lock(&tasklist_lock);
-       if (child->signal) {
+       if (child->sighand) {
                spin_lock_irq(&child->sighand->siglock);
                if (child->state == TASK_STOPPED &&
                    !test_and_set_tsk_thread_flag(child, TIF_RESTORE_RSE)) {
@@ -662,7 +662,7 @@ ptrace_attach_sync_user_rbs (struct task_struct *child)
         * job control stop, so that SIGCONT can be used to wake it up.
         */
        read_lock(&tasklist_lock);
-       if (child->signal) {
+       if (child->sighand) {
                spin_lock_irq(&child->sighand->siglock);
                if (child->state == TASK_TRACED &&
                    (child->signal->flags & SIGNAL_STOP_STOPPED)) {