[MIPS] Retry {save,restore}_fp_context if failed in atomic context.
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Mon, 16 Apr 2007 14:19:44 +0000 (23:19 +0900)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 20 Apr 2007 13:58:37 +0000 (14:58 +0100)
commitfaea62346444ce5b1dba8fb5291d95b676522c42
treed00e53763ca9b145348e5754aaf0cd4dcbb12123
parent5323180db75d562a287cb2020b07c9422df13df6
[MIPS] Retry {save,restore}_fp_context if failed in atomic context.

The save_fp_context()/restore_fp_context() might sleep on accessing
user stack and therefore might lose FPU ownership in middle of them.

If these function failed due to "in_atomic" test in do_page_fault,
touch the sigcontext area in non-atomic context and retry these
save/restore operation.

This is a replacement of a (broken) fix which was titled "Allow CpU
exception in kernel partially".

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/signal-common.h
arch/mips/kernel/signal.c
arch/mips/kernel/signal32.c
include/asm-mips/fpu.h