linux/arch
Bodo Stroesser 0f7e663dea [PATCH] uml: Fix process exit race
tt-mode closes switch_pipes in exit_thread_tt and kills processes in
switch_to_tt, if the exit_state is EXIT_DEAD or EXIT_ZOMBIE.

In very rare cases the exiting process can be scheduled out after having set
exit_state and closed switch_pipes (from release_task it calls proc_pid_flush,
which might sleep).  If this process is to be restarted, UML failes in
switch_to_tt with:

   write of switch_pipe failed, err = 9

We fix this by closing switch_pipes not in exit_thread_tt, but later in
release_thread_tt.  Additionally, we set switch_pipe[0] = 0 after closing.
switch_to_tt must not kill "from" process depending on its exit_state, but
must kill it after release_thread was processed only, so it examines
switch_pipe[0] for its decision.

Signed-off-by: Bodo Stroesser <bstroesser@fujitsu-siemens.com>
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-05-06 22:09:30 -07:00
..
alpha [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
arm [PATCH] ARM: 2665/1: kill warnings in entry-armv.S 2005-05-05 23:24:45 +01:00
arm26 [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
cris [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
frv [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
h8300 [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
i386 Fix acpi_find_rsdp() - acpi_scan_rsdp takes length, not end 2005-05-06 15:39:23 -07:00
ia64 [PATCH] ppc64: remove hidden -fno-omit-frame-pointer for schedule.c 2005-05-05 16:36:32 -07:00
m32r [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
m68k [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
m68knommu [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
mips Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-05-05 13:59:37 +01:00
parisc [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
ppc [PATCH] ppc32: Fix POWER3/POWER4 compiler error 2005-05-06 22:09:28 -07:00
ppc64 [PATCH] ppc64: enable CONFIG_RTAS_PROC by default 2005-05-06 22:09:27 -07:00
s390 Merge with master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2005-05-03 08:14:09 +01:00
sh [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
sh64 [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
sparc [SPARC]: Remove legacy stuff from cpu_idle(). 2005-05-05 14:53:01 -07:00
sparc64 [SPARC]: Remove legacy stuff from cpu_idle(). 2005-05-05 14:53:01 -07:00
um [PATCH] uml: Fix process exit race 2005-05-06 22:09:30 -07:00
v850 [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
x86_64 [PATCH] CodingStyle: trivial whitespace fixups 2005-05-05 16:36:49 -07:00