Problem solved!
The recent work on the vkernel which enabled preemptive thread
switching introduced a race condition in go_user() between the
determination of the FP state and the call to vmspace_ctl().
The FP state could wind up getting changed by a preemptive thread
switch and result in corruption of the FP state in the virtual
user process when vmspace_ctl() was finally called.
-Matt
Matthew Dillon
<[email protected]>
