On Mon, Aug 25, 2014 at 11:08 AM, Oleg Nesterov <[email protected]> wrote: > > Add preempt_disable() + preempt_enable() around math_state_restore() in > __restore_xstate_sig(). Otherwise __switch_to() after __thread_fpu_begin() > can overwrite fpu->state we are going to restore. > > Signed-off-by: Oleg Nesterov <[email protected]> > Cc: [email protected] > --- > arch/x86/kernel/xsave.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c > index 453343c..c52eb9c 100644 > --- a/arch/x86/kernel/xsave.c > +++ b/arch/x86/kernel/xsave.c > @@ -397,8 +397,11 @@ int __restore_xstate_sig(void __user *buf, void __user > *buf_fx, int size) > set_used_math(); > } > > - if (use_eager_fpu()) > + if (use_eager_fpu()) { > + preempt_disable(); > math_state_restore(); > + preempt_enable(); > + } > > return err; > } else { >
oops. looks good to me. Reviewed-by: Suresh Siddha <[email protected]> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

