patch-1.3.92 linux/arch/i386/kernel/process.c

Next file: linux/arch/i386/kernel/traps.c
Previous file: linux/arch/alpha/mm/fault.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v1.3.91/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c
@@ -266,6 +266,22 @@
 
 	for (i=0 ; i<8 ; i++)
 		current->debugreg[i] = 0;
+
+	/*
+	 * Forget coprocessor state..
+	 */
+#ifdef __SMP__
+	if (current->flags & PF_USEDFPU) {
+		stts();
+	}
+#else
+	if (last_task_used_math == current) {
+		last_task_used_math = NULL;
+		stts();
+	}
+#endif
+	current->used_math = 0;
+	current->flags &= ~PF_USEDFPU;
 }
 
 void release_thread(struct task_struct *dead_task)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov with Sam's (original) version
of this