Module Name:    src
Committed By:   riastradh
Date:           Fri Mar  3 14:32:27 UTC 2023

Modified Files:
        src/sys/arch/i386/i386: genassym.cf locore.S

Log Message:
Revert "x86: Add kthread_fpu_enter/exit support, take two -- forgot i386 bits."

kthread_fpu_enter/exit changes broke some hardware, unclear why, to
investigate before fixing and reapplying these changes.


To generate a diff of this commit:
cvs rdiff -u -r1.132 -r1.133 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -u -r1.193 -r1.194 src/sys/arch/i386/i386/locore.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/i386/i386/genassym.cf
diff -u src/sys/arch/i386/i386/genassym.cf:1.132 src/sys/arch/i386/i386/genassym.cf:1.133
--- src/sys/arch/i386/i386/genassym.cf:1.132	Sat Feb 25 18:35:54 2023
+++ src/sys/arch/i386/i386/genassym.cf	Fri Mar  3 14:32:27 2023
@@ -1,4 +1,4 @@
-#	$NetBSD: genassym.cf,v 1.132 2023/02/25 18:35:54 riastradh Exp $
+#	$NetBSD: genassym.cf,v 1.133 2023/03/03 14:32:27 riastradh Exp $
 
 #
 # Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -175,7 +175,6 @@ define	L_MD_FLAGS		offsetof(struct lwp, 
 define	L_MD_ASTPENDING		offsetof(struct lwp, l_md.md_astpending)
 
 define	LW_SYSTEM		LW_SYSTEM
-define	LW_SYSTEM_FPU		LW_SYSTEM_FPU
 define	MDL_FPU_IN_CPU		MDL_FPU_IN_CPU
 
 define	P_FLAG			offsetof(struct proc, p_flag)

Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.193 src/sys/arch/i386/i386/locore.S:1.194
--- src/sys/arch/i386/i386/locore.S:1.193	Wed Mar  1 08:38:50 2023
+++ src/sys/arch/i386/i386/locore.S	Fri Mar  3 14:32:27 2023
@@ -1,4 +1,4 @@
-/*	$NetBSD: locore.S,v 1.193 2023/03/01 08:38:50 riastradh Exp $	*/
+/*	$NetBSD: locore.S,v 1.194 2023/03/03 14:32:27 riastradh Exp $	*/
 
 /*
  * Copyright-o-rama!
@@ -128,7 +128,7 @@
  */
 
 #include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.193 2023/03/01 08:38:50 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.194 2023/03/03 14:32:27 riastradh Exp $");
 
 #include "opt_copy_symtab.h"
 #include "opt_ddb.h"
@@ -1471,7 +1471,7 @@ ENTRY(cpu_switchto)
 
 	/* Don't bother with the rest if switching to a system process. */
 	testl	$LW_SYSTEM,L_FLAG(%edi)
-	jnz	.Lswitch_system
+	jnz	switch_return
 
 #ifndef XENPV
 	/* Restore thread-private %fs/%gs descriptors. */
@@ -1525,21 +1525,6 @@ switch_return:
 	popl	%ebx
 	ret
 
-.Lswitch_system:
-	/*
-	 * If it has LWP_SYSTEM_FPU set, meaning it's running in
-	 * kthread_fpu_enter/exit, we need to restore the FPU state
-	 * and enable FPU instructions with fpu_handle_deferred.
-	 *
-	 * No need to test MDL_FPU_IN_CPU via HANDLE_DEFERRED_FPU --
-	 * fpu_switch guarantees it is clear, so we can just call
-	 * fpu_handle_deferred unconditionally.
-	 */
-	testl	$LW_SYSTEM_FPU,L_FLAG(%edi)
-	jz	switch_return
-	call	_C_LABEL(fpu_handle_deferred)
-	jmp	switch_return
-
 .Lcopy_iobitmap:
 	/* Copy I/O bitmap. */
 	incl	_C_LABEL(pmap_iobmp_evcnt)+EV_COUNT

Reply via email to