x86/fpu: Don't abuse drop_init_fpu() in flush_thread()
authorOleg Nesterov <[email protected]>
Fri, 13 Mar 2015 17:30:30 +0000 (18:30 +0100)
committerIngo Molnar <[email protected]>
Mon, 23 Mar 2015 09:13:58 +0000 (10:13 +0100)
commitf893959b0898bd876673adbeb6798bdf25c034d7
treec0b9d2b3d247912f35e0f1304767e65975205842
parent9cb6ce823bbd1adbe15e30bd1435c84c2e271767
x86/fpu: Don't abuse drop_init_fpu() in flush_thread()

flush_thread() -> drop_init_fpu() is suboptimal and confusing. It does
drop_fpu() or restore_init_xstate() depending on !use_eager_fpu(). But
flush_thread() too checks eagerfpu right after that, and if it is true
then restore_init_xstate() just burns CPU for no reason. We are going to
load init_xstate_buf again after we set used_math()/user_has_fpu(), until
then the FPU state can't survive after switch_to().

Remove it, and change the "if (!use_eager_fpu())" to call drop_fpu().
While at it, clean up the tsk/current usage.

Signed-off-by: Oleg Nesterov <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Dave Hansen <[email protected]>
Cc: Fenghua Yu <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Pekka Riikonen <[email protected]>
Cc: Quentin Casasnovas <[email protected]>
Cc: Rik van Riel <[email protected]>
Cc: Suresh Siddha <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
arch/x86/kernel/process.c