powerpc/math-emu: Move the flush FPU state function into do_mathemu

By doing this we can make sure that the FPU state is only flushed to
the thread struct when it is really needed.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Kevin Hao 2013-07-14 16:40:06 +08:00 коммит произвёл Benjamin Herrenschmidt
Родитель 195c4940f7
Коммит 6761ee3d7e
2 изменённых файлов: 9 добавлений и 9 удалений

Просмотреть файл

@ -1134,15 +1134,6 @@ void __kprobes program_check_exception(struct pt_regs *regs)
* instruction or only on FP instructions, whether there is a * instruction or only on FP instructions, whether there is a
* pattern to occurrences etc. -dgibson 31/Mar/2003 * pattern to occurrences etc. -dgibson 31/Mar/2003
*/ */
/*
* If we support a HW FPU, we need to ensure the FP state
* if flushed into the thread_struct before attempting
* emulation
*/
#ifdef CONFIG_PPC_FPU
flush_fp_to_thread(current);
#endif
switch (do_mathemu(regs)) { switch (do_mathemu(regs)) {
case 0: case 0:
emulate_single_step(regs); emulate_single_step(regs);

Просмотреть файл

@ -420,6 +420,15 @@ do_mathemu(struct pt_regs *regs)
goto illegal; goto illegal;
} }
/*
* If we support a HW FPU, we need to ensure the FP state
* is flushed into the thread_struct before attempting
* emulation
*/
#ifdef CONFIG_PPC_FPU
flush_fp_to_thread(current);
#endif
eflag = func(op0, op1, op2, op3); eflag = func(op0, op1, op2, op3);
if (insn & 1) { if (insn & 1) {