vserver 1.9.3
[linux-2.6.git] / arch / arm / kernel / process.c
index 8d9db74..1301b03 100644 (file)
@@ -313,11 +313,23 @@ void flush_thread(void)
 
        memset(thread->used_cp, 0, sizeof(thread->used_cp));
        memset(&tsk->thread.debug, 0, sizeof(struct debug_info));
+#if defined(CONFIG_IWMMXT)
+       iwmmxt_task_release(thread);
+#endif
        fp_init(&thread->fpstate);
+#if defined(CONFIG_VFP)
+       vfp_flush_thread(&thread->vfpstate);
+#endif
 }
 
 void release_thread(struct task_struct *dead_task)
 {
+#if defined(CONFIG_VFP)
+       vfp_release_thread(&dead_task->thread_info->vfpstate);
+#endif
+#if defined(CONFIG_IWMMXT)
+       iwmmxt_task_release(dead_task->thread_info);
+#endif
 }
 
 asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");