linux/arch
Peter Chubb 05062d96a2 [PATCH] ia64: fix floating-point preemption problem
There've been reports of problems with CONFIG_PREEMPT=y and the high
floating point partition.  This is caused by the possibility of preemption
and rescheduling on a different processor while saving or restioirng the
high partition.

The only places where the FPU state is touched are in ptrace, in
switch_to(), and where handling a floating-point exception.  In switch_to()
preemption is off.  So it's only in trap.c and ptrace.c that we need to
prevent preemption.

Here is a patch that adds commentary to make the conditions clear, and adds
appropriate preempt_{en,dis}able() calls to make it so.  In trap.c I use
preempt_enable_no_resched(), as we're about to return to user space where
the preemption flag will be checked anyway.

Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-08 16:21:14 -07:00
..
alpha [PATCH] alpha/osf_sys: use helper functions to convert between tv and jiffies 2005-05-17 07:59:21 -07:00
arm [PATCH] ARM: 2664/2: add support for atomic ops on pre-ARMv6 SMP systems 2005-06-08 19:00:47 +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] h8300 sleep problem 2005-05-31 14:54:17 -07:00
i386 [PATCH] Stop arch/i386/kernel/vsyscall-note.o being rebuilt every time 2005-06-08 16:21:13 -07:00
ia64 [PATCH] ia64: fix floating-point preemption problem 2005-06-08 16:21:14 -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] m68knommu: fix scheduling and race problems in idle loop 2005-06-03 08:16:17 -07:00
mips [PATCH] mips: add resource management to pmu 2005-05-17 07:59:20 -07:00
parisc [PATCH] ISA DMA Kconfig fixes - part 1 2005-05-04 07:33:13 -07:00
ppc [PATCH] ppc32: add 405EP cpu_spec entry 2005-06-08 16:21:12 -07:00
ppc64 [PATCH] ppc64 kprobes: remove spurious MSR_SE masking 2005-06-08 16:21:13 -07:00
s390 [PATCH] s390: deadlock in appldata 2005-06-04 17:13:00 -07: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 [SPARC64]: Refine PCI strbuf ctx-based flush. 2005-05-31 19:13:52 -07:00
um [PATCH] uml: clean up error path 2005-06-08 16:21:12 -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] revert x86_64-use-the-e820-hole-to-map-the-iommu-agp-aperture 2005-06-08 16:21:13 -07:00