patch-2.1.36 linux/arch/i386/kernel/ptrace.c
Next file: linux/arch/i386/kernel/signal.c
Previous file: linux/arch/i386/kernel/irq.h
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Thu Apr 17 13:20:40 1997
- Orig file:
v2.1.35/linux/arch/i386/kernel/ptrace.c
- Orig date:
Sun Jan 26 02:07:04 1997
diff -u --recursive --new-file v2.1.35/linux/arch/i386/kernel/ptrace.c linux/arch/i386/kernel/ptrace.c
@@ -584,10 +584,9 @@
asmlinkage void syscall_trace(void)
{
- lock_kernel();
if ((current->flags & (PF_PTRACED|PF_TRACESYS))
!= (PF_PTRACED|PF_TRACESYS))
- goto out;
+ return;
current->exit_code = SIGTRAP;
current->state = TASK_STOPPED;
notify_parent(current);
@@ -597,9 +596,10 @@
* for normal use. strace only continues with a signal if the
* stopping signal is not SIGTRAP. -brl
*/
- if (current->exit_code)
+ if (current->exit_code) {
+ spin_lock_irq(¤t->sigmask_lock);
current->signal |= (1 << (current->exit_code - 1));
+ spin_unlock_irq(¤t->sigmask_lock);
+ }
current->exit_code = 0;
-out:
- unlock_kernel();
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov