lkml.org 
[lkml]   [2019]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 16/22] x86/fpu: Always store the registers in copy_fpstate_to_sigframe()
    On 2019-01-30 12:43:22 [+0100], Borislav Petkov wrote:
    > > @@ -171,9 +156,15 @@ int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
    > > sizeof(struct user_i387_ia32_struct), NULL,
    > > (struct _fpstate_32 __user *) buf) ? -1 : 1;
    > >
    > > - /* Save the live register state to the user directly. */
    > > - if (copy_fpregs_to_sigframe(buf_fx))
    > > - return -1;
    > > + copy_fpregs_to_fpstate(fpu);
    > > +
    > > + if (using_compacted_format()) {
    > > + copy_xstate_to_user(buf_fx, xsave, 0, size);
    > > + } else {
    > > + fpstate_sanitize_xstate(fpu);
    > > + if (__copy_to_user(buf_fx, xsave, fpu_user_xstate_size))
    > > + return -1;
    > > + }
    > >
    > > /* Save the fsave header for the 32-bit frames. */
    > > if ((ia32_fxstate || !use_fxsr()) && save_fsave_header(tsk, buf))
    >
    > Comments above that function need updating.

    Did:
    - * Save the state directly to the user frame pointed by the aligned pointer
    - * 'buf_fx'.
    + * Save the state to task's fpu->state and then copy it to the user frame
    + * pointed by the aligned pointer 'buf_fx'.

    Sebastian

    \
     
     \ /
      Last update: 2019-02-07 14:29    [W:7.596 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site