linux/arch/ia64
Roland McGrath 7d94143291 Fix spurious syscall tracing after PTRACE_DETACH + PTRACE_ATTACH
When PTRACE_SYSCALL was used and then PTRACE_DETACH is used, the
TIF_SYSCALL_TRACE flag is left set on the formerly-traced task.  This
means that when a new tracer comes along and does PTRACE_ATTACH, it's
possible he gets a syscall tracing stop even though he's never used
PTRACE_SYSCALL.  This happens if the task was in the middle of a system
call when the second PTRACE_ATTACH was done.  The symptom is an
unexpected SIGTRAP when the tracer thinks that only SIGSTOP should have
been provoked by his ptrace calls so far.

A few machines already fixed this in ptrace_disable (i386, ia64, m68k).
But all other machines do not, and still have this bug.  On x86_64, this
constitutes a regression in IA32 compatibility support.

Since all machines now use TIF_SYSCALL_TRACE for this, I put the
clearing of TIF_SYSCALL_TRACE in the generic ptrace_detach code rather
than adding it to every other machine's ptrace_disable.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-09-10 18:57:47 -07:00
..
configs [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ 2007-08-13 14:54:34 -07:00
dig
hp [IA64] Cleanup HPSIM code (was: Re: Enable early console for Ski simulator) 2007-09-01 02:52:25 -07:00
ia32 [IA64] Remove a few duplicate includes 2007-07-30 16:28:59 -07:00
kernel Fix spurious syscall tracing after PTRACE_DETACH + PTRACE_ATTACH 2007-09-10 18:57:47 -07:00
lib missing exports of csum_... 2007-07-17 11:01:07 -07:00
mm Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-09-04 00:43:57 -07:00
oprofile
pci [IA64] Nail two more simple section mismatch errors 2007-07-25 13:08:41 -07:00
scripts
sn [IA64] SN: Add support for CPU disable 2007-09-01 02:49:57 -07:00
defconfig [IA64] Update arch/ia64/configs/* s/SLAB/SLUB/ 2007-08-13 14:54:34 -07:00
install.sh
Kconfig [IA64] Include Kconfig.preempt 2007-08-13 13:20:38 -07:00
Kconfig.debug
Makefile
module.lds