On 2019-03-31 20:20:25 [+0200], Thomas Gleixner wrote: > > I think this should do the following: > > fpregs_lock(); > if (!test_thread_flag(TIF_NEED_FPU_LOAD)) { > pagefault_disable(); > ret = copy_fpu_to_user(...); > pagefault_enable(); > if (!res) > return 0; > copy_fpregs_to_fpstate(fpu); > } > fpregs_unlock(); > > The point is that in most cases the direct store from the FPU registers to > user space will succeed simply because the stack is accessible and you only > do the store in kernel memory and copy when that fails. let me try that. > Thanks, > > tglx > Sebastian