This patchset fixes several potential problem related FPU ownership management. The main problem is save_fp_contect()/restore_fp_context() might sleep on accessing user stack and therefore might lose FPU ownership in middle of them. The first patch ("do_fpe() cleanup") is just a cleanup to preparation. The second patch ("Allow CpU exception in kernel partially") is main part. This is an alternative of the patch posted before: http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20060829.225631.41630441.anemo%40mba.ocn.ne.jp The third patch ("Cleanup FPU ownership management") is an another cleanup and get rid of most preempt_disable()/preempt_enable() pairs around. Please review. Thank you. --- Atsushi Nemoto