patch-2.1.90 linux/arch/sparc/kernel/ptrace.c
Next file: linux/arch/sparc/kernel/sparc_ksyms.c
Previous file: linux/arch/sparc/kernel/init_task.c
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
Wed Mar 11 15:44:14 1998
- Orig file:
v2.1.89/linux/arch/sparc/kernel/ptrace.c
- Orig date:
Mon Jan 12 15:15:43 1998
diff -u --recursive --new-file v2.1.89/linux/arch/sparc/kernel/ptrace.c linux/arch/sparc/kernel/ptrace.c
@@ -550,9 +550,12 @@
}
child->flags |= PF_PTRACED;
if(child->p_pptr != current) {
+ unsigned long flags;
+ write_lock_irqsave(&tasklist_lock, flags);
REMOVE_LINKS(child);
child->p_pptr = current;
SET_LINKS(child);
+ write_unlock_irqrestore(&tasklist_lock, flags);
}
send_sig(SIGSTOP, child, 1);
pt_succ_return(regs, 0);
@@ -851,6 +854,7 @@
}
case PTRACE_SUNDETACH: { /* detach a process that was attached. */
+ unsigned long flags;
if ((unsigned long) data > _NSIG) {
pt_error_return(regs, EIO);
goto out;
@@ -858,9 +862,11 @@
child->flags &= ~(PF_PTRACED|PF_TRACESYS);
wake_up_process(child);
child->exit_code = data;
+ write_lock_irqsave(&tasklist_lock, flags);
REMOVE_LINKS(child);
child->p_pptr = child->p_opptr;
SET_LINKS(child);
+ write_unlock_irqrestore(&tasklist_lock, flags);
pt_succ_return(regs, 0);
goto out;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov