x86: split out core __math_state_restore
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Fri, 24 Apr 2009 07:40:59 +0000 (00:40 -0700)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Wed, 17 Jun 2009 20:21:25 +0000 (13:21 -0700)
commite6e9cac8c3417b43498b243c1f8f11780e157168
tree4a3a2995f8d930f7baaf19b827043c6f9bf62db3
parent3fe0344faf7fdcb158bd5c1a9aec960a8d70c8e8
x86: split out core __math_state_restore

Split the core fpu state restoration out into __math_state_restore, which
assumes that cr0.TS is clear and that the fpu context has been initialized.

This will be used during context switch.  There are two reasons this is
desireable:

- There's a small clarification.  When __switch_to() calls math_state_restore,
  it relies on the fact that tsk_used_math() returns true, and so will
  never do a blocking init_fpu().  __math_state_restore() does not have
  (or need) that logic, so the question never arises.

- It allows the clts() to be moved earler in __switch_to() so it can be performed
  while cpu context updates are batched (will be done in a later patch).

[ Impact: refactor code to make reuse cleaner; no functional change ]

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Alok Kataria <akataria@vmware.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
arch/x86/include/asm/i387.h
arch/x86/kernel/traps.c