• Sebastian Andrzej Siewior's avatar
    x86/fpu: Remove user_fpu_begin() · 0169f53e
    Sebastian Andrzej Siewior authored
    user_fpu_begin() sets fpu_fpregs_owner_ctx to task's fpu struct. This is
    always the case since there is no lazy FPU anymore.
    
    fpu_fpregs_owner_ctx is used during context switch to decide if it needs
    to load the saved registers or if the currently loaded registers are
    valid. It could be skipped during a
    
      taskA -> kernel thread -> taskA
    
    switch because the switch to the kernel thread would not alter the CPU's
    sFPU tate.
    
    Since this field is always updated during context switch and
    never invalidated, setting it manually (in user context) makes no
    difference. A kernel thread with kernel_fpu_begin() block could
    set fpu_fpregs_owner_ctx to NULL but a kernel thread does not use
    user_fpu_begin().
    
    This is a leftover from the lazy-FPU time.
    
    Remove user_fpu_begin(), it does not change fpu_fpregs_owner_ctx's
    content.
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarDave Hansen <dave.hansen@intel.com>
    Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Aubrey Li <aubrey.li@intel.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jann Horn <jannh@google.com>
    Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
    Cc: kvm ML <kvm@vger.kernel.org>
    Cc: Nicolai Stange <nstange@suse.de>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: x86-ml <x86@kernel.org>
    Link: https://lkml.kernel.org/r/20190403164156.19645-9-bigeasy@linutronix.de
    0169f53e
internal.h 14.3 KB