Why? The thread struct is guaranteed to contain pointless data.
If we cannot restore the FP state from the signal stack, we should not try
to restore it from anywhere _else_ either, since nowhere else will have
any better results.
I suspect we should just reset the x87 state (which was the _intention_ of
the code), possibly by just doing "stts + used_math = 0". The signal
handling code already checks for errors, and will force a SIGSEGV if this
ever happens.
(Yes, there is also a restore_fpu_checking() in math_state_restore(), but
that one _already_ uses ¤t->thread.xstate->fxsave as the buffer to
restore from, so trying to do that _again_ when it fails seems to be
really really wrong - we already _did_ that, and that was what failed to
begin with)
Linus
--