• Oleg Nesterov's avatar
    x86/fpu: Don't abuse drop_init_fpu() in flush_thread() · f893959b
    Oleg Nesterov authored
    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: default avatarOleg Nesterov <oleg@redhat.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Pekka Riikonen <priikone@iki.fi>
    Cc: Quentin Casasnovas <quentin.casasnovas@oracle.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Suresh Siddha <sbsiddha@gmail.com>
    Link: http://lkml.kernel.org/r/20150313173030.GA31217@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f893959b
process.c 10.5 KB