[PATCH 0/4] x86/fpu: avoid math_state_restore() on kthread exec

Oleg Nesterov
2015-03-11T17:36:04Z

Hello.

This should "fix" the kernel crash observed by Dave.

But let me repeat once again, the problem is that fpu_finit() is buggy
on Dave's machine. This series should "hide" this problem, we need to
fix it later anyway.

I was going to do these changes anyway, math_state_restore() was only
used because we did not have the necessary helpers. I was going to start
with init_fpu() cleanups, but since math_state_restore() makes this
fpu_finit() bug more visible lets remove it first.

Note that init_fpu() + user_fpu_begin() is racy, used_math() is already
set so __switch_to() in between can do restore_fpu_checking() too and
trigger the same GPF. But this is fine (to some degree), the task won't
be killed. And this is just another proof that init_fpu() should not
set used_math() and it and its users need more cleanups.

More to come tomorrow.

Oleg.