original_kernel/arch/ia64/kernel
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
..
Makefile
acpi-ext.c
acpi.c [IA64] use common pxm function 2005-05-03 13:33:18 -07:00
asm-offsets.c
brl_emu.c
cyclone.c
domain.c
efi.c
efi_stub.S
entry.S [IA64] Avoid .spillpsp directive in handcoded assembly 2005-05-10 13:52:00 -07:00
entry.h
fsys.S [IA64] fix ia64 syscall auditing 2005-05-03 13:45:39 -07:00
gate-data.S
gate.S
gate.lds.S
head.S
ia64_ksyms.c
init_task.c
iosapic.c
irq.c
irq_ia64.c
irq_lsapic.c
ivt.S
machvec.c
mca.c [IA64] Cleanup compile warnings for ski config 2005-06-01 15:20:17 -07:00
mca_asm.S
mca_drv.c [IA64] MCA recovery improvements 2005-05-03 13:47:42 -07:00
mca_drv.h
mca_drv_asm.S [IA64] MCA recovery improvements 2005-05-03 13:47:42 -07:00
minstate.h [IA64] Fix stack placement when INIT hits in kernel mode. 2005-05-06 10:16:07 -07:00
module.c [IA64] Module gp must point to valid memory 2005-06-08 11:41:31 -07:00
pal.S
palinfo.c
patch.c
perfmon.c [IA64] Use "PER_CPU" form of EXPORT macro 2005-05-31 10:38:32 -07:00
perfmon_default_smpl.c
perfmon_generic.h
perfmon_itanium.h
perfmon_mckinley.h
process.c [IA64] Fix two warnings introduced by perfmon patches. 2005-05-03 16:21:45 -07:00
ptrace.c [PATCH] ia64: fix floating-point preemption problem 2005-06-08 16:21:14 -07:00
sal.c
salinfo.c
semaphore.c
setup.c [IA64] Update comment to describe modes set in default control register. 2005-06-08 12:12:48 -07:00
sigframe.h
signal.c [IA64] fix ia64 syscall auditing 2005-05-03 13:45:39 -07:00
smp.c
smpboot.c [IA64] fix "section mismatch" compile-time-error 2005-05-09 10:16:17 -07:00
sys_ia64.c [IA64] sys_mmap doesn't follow posix.1 when parameter len=0 2005-05-26 10:19:07 -07:00
time.c
topology.c
traps.c [PATCH] ia64: fix floating-point preemption problem 2005-06-08 16:21:14 -07:00
unaligned.c
unwind.c
unwind_decoder.c
unwind_i.h
vmlinux.lds.S