Subject: port-i386/3755: cpu_reset() doesn'
To: None <gnats-bugs@gnats.netbsd.org>
From: Bill Sommerfeld <sommerfeld@orchard.east-arlington.ma.us>
List: netbsd-bugs
Date: 06/17/1997 04:39:29
>Number:         3755
>Category:       port-i386
>Synopsis:       cpu_reset() doesn't
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    gnats-admin (GNATS administrator)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jun 16 21:50:01 1997
>Last-Modified:
>Originator:     Bill Sommerfeld
>Organization:
	
>Release:        19970615
>Environment:
	
System: NetBSD orchard.east-arlington.ma.us 1.2G NetBSD 1.2G (ORCHARD) #4: Tue Jun 17 00:25:25 EDT 1997 root@orchard.east-arlington.ma.us:/home/current/src/sys/arch/i386/compile/ORCHARD i386


>Description:
	cpu_reset() fails to reboot my 486/33 system.

>How-To-Repeat:
	run /sbin/reboot on my system, and observe that it hangs
	instead of rebooting.

>Fix:
	removing the #if 0/#endif from cpu_reset() fixes the problem on my
	system.

Index: machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/i386/i386/machdep.c,v
retrieving revision 1.234
diff -u -r1.234 machdep.c
--- machdep.c	1997/06/12 23:57:26	1.234
+++ machdep.c	1997/06/17 04:38:51
@@ -1695,14 +1695,12 @@
 	lidt(&region);
 	__asm __volatile("divl %0,%1" : : "q" (0), "a" (0)); 
 
-#if 0
 	/*
 	 * Try to cause a triple fault and watchdog reset by unmapping the
 	 * entire address space and doing a TLB flush.
 	 */
 	bzero((caddr_t)PTD, NBPG);
 	pmap_update(); 
-#endif
 
 	for (;;);
 }

>Audit-Trail:
>Unformatted: