linux/arch
Paul Mackerras 5388fb1025 [PATCH] powerpc: Avoid potential FP corruption with preempt and UP
Heikki Lindholm pointed out that there was a potential race with the
lazy CPU state (FP, VR, EVR) stuff if preempt is enabled.  The race
is that in the process of restoring FP state on sigreturn, the task
gets preempted by a user task that wants to use the FPU.  It will take
an FP unavailable exception, which will write the current FPU state
to the thread_struct, overwriting the values which sigreturn has
stored.  Note that this can only happen on UP since we don't implement
lazy CPU state on SMP.

The fix is to flush the lazy CPU state before updating the
thread_struct.  To do this we re-use the flush_lazy_cpu_state()
function from process.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-01-12 20:09:29 +11:00
..
alpha [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
arm [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
arm26 [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
cris [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
frv Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuild 2006-01-10 08:21:33 -08:00
h8300 [PATCH] h8300: remove MAGIC_ROM_PTR from memory.c 2006-01-10 09:31:26 -08:00
i386 [PATCH] i386/x86-64: make setup_early_printk() usage consistent 2006-01-11 19:05:04 -08:00
ia64 [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
m32r [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
m68k [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
m68knommu [PATCH] m68knommu: fix ram length of m5208evb board 2006-01-10 09:31:27 -08:00
mips [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
parisc [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
powerpc [PATCH] powerpc: Avoid potential FP corruption with preempt and UP 2006-01-12 20:09:29 +11:00
ppc [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
s390 [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
sh [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
sh64 [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
sparc [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
sparc64 [PATCH] capable/capability.h (arch/) 2006-01-11 18:42:14 -08:00
um [PATCH] uml: kill an unused variable 2006-01-11 18:42:10 -08:00
v850 [PATCH] dump_thread() cleanup 2006-01-10 08:01:25 -08:00
x86_64 [PATCH] x86_64: Fix SMP bootup with CONFIG_KDUMP enabled 2006-01-11 19:09:58 -08:00
xtensa [PATCH] "tiny-make-id16-support-optional" fixes 2006-01-10 08:01:23 -08:00