> +int cr_read_cpu_fpu(struct cr_hdr_cpu *hh, struct task_struct *t)
> +{
> +     struct thread_struct *thread = &t->thread;
> +
> +     /* i387 + MMU + SSE */
> +
> +     preempt_disable();
> +
> +     __clear_fpu(t);         /* in case we used FPU in user mode */
> +
> +     if (!hh->used_math)
> +             clear_used_math();
> +     else {
> +             if (hh->has_fxsr != cpu_has_fxsr) {
> +                     force_sig(SIGFPE, t);
> +                     return -EINVAL;
> +             }

don't you need an init_fpu() around here ? because the task you restart might 
not have used FPU yet.

> +             memcpy(&thread->xstate, &hh->xstate, sizeof(thread->xstate));

also i'd used 'xstate_size' instead of sizeof(thread->xstate)


thanks,

C.
_______________________________________________
Containers mailing list
[EMAIL PROTECTED]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to