linux/arch/m68k
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
..
amiga SPIN_LOCK_UNLOCKED cleanup in arch/m68k 2007-05-07 12:12:59 -07:00
apollo m68k: missing __init 2007-07-20 08:24:49 -07:00
atari m68k: missing exports 2007-07-20 08:24:49 -07:00
bvme6000 m68k: missing __init 2007-07-20 08:24:49 -07:00
configs [PATCH] M68k: Mark Sun-3 NCR5380 SCSI broken 2005-06-12 20:43:22 -07:00
fpsp040 [PATCH] Add wording to m68k .S files to help clarify license info 2006-02-11 21:41:11 -08:00
hp300 IRQ: Use the new typedef for interrupt handler function pointers 2006-10-09 12:19:47 +01:00
ifpsp060 [PATCH] m68k: convert thread flags to use bit fields 2005-11-13 18:14:14 -08: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
mac m68k: missing __init 2007-07-20 08:24:49 -07:00
math-emu Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
mm m68k: Kill superfluous extern 2007-08-22 19:52:45 -07:00
mvme16x m68k: missing __init 2007-07-20 08:24:49 -07:00
mvme147 m68k: missing __init 2007-07-20 08:24:49 -07:00
q40 m68k: missing __init 2007-07-20 08:24:49 -07:00
sun3 m68k: missing __init 2007-07-20 08:24:49 -07:00
sun3x m68k: missing __init 2007-07-20 08:24:49 -07:00
tools/amiga Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
defconfig [PATCH] M68k: Update defconfigs 2005-06-12 20:43:21 -07:00
Kconfig m68k: exclude more unbuildable drivers 2007-07-20 08:24:49 -07:00
Kconfig.debug Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile m68k: runtime patching infrastructure 2007-05-31 07:58:13 -07:00