Subject: port-i386/15828: no-fpu i386 machine panic: npxdna vector not initialized
To: None <gnats-bugs@gnats.netbsd.org>
From: None <oki@netbsd.org>
List: netbsd-bugs
Date: 03/07/2002 17:18:08
>Number:         15828
>Category:       port-i386
>Synopsis:       no-fpu i386 machine panics on -current when running df
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Mar 07 00:19:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     
>Release:        NetBSD 1.5ZA 20020307
>Organization:
	The PEACE Project
>Environment:
System: NetBSD chiharu.homeip.net 1.5ZA NetBSD 1.5ZA (CHIHARU) #8: Thu Jan 31 10:57:52 JST 2002 oki@chiharu.homeip.net:/usr/src/sys/arch/i386/compile/CHIHARU i386
Architecture: i386
Machine: i386
>Description:
	no-fpu i386 (e.g. i486SX) machine panics when running df on -current.
	panic message is:
		panic: npxdna vector not initialized

	The kernel with options MATH_EMULATE are ineffective.
>How-To-Repeat:
	run df on -current at no-fpu i386 machine.
>Fix:
Index: npx.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/i386/isa/npx.c,v
retrieving revision 1.84
diff -u -r1.84 npx.c
--- npx.c	2002/01/10 03:46:17	1.84
+++ npx.c	2002/03/07 08:05:04
@@ -126,10 +126,16 @@
 		fnsave(&addr->sv_87);
 }
 
+static	enum npx_type		npx_type;
+
 static int
 npxdna_notset(struct proc *p)
 {
 
+	if (npx_type == NPX_NONE) {
+		IPRINTF(("Emul"));
+		return (0);
+	}
 	panic("npxdna vector not initialized");
 }
 
@@ -143,7 +149,6 @@
 
 struct proc	*npxproc;
 
-static	enum npx_type		npx_type;
 static	int			npx_nointr;
 volatile u_int			npx_intrs_while_probing;
 volatile u_int			npx_traps_while_probing;
>Release-Note:
>Audit-Trail:
>Unformatted: