Subject: kern/5246: apm0 hangs on systems with 'apm_damn_fool_bios'en
To: None <gnats-bugs@gnats.netbsd.org>
From: Soren S. Jorvang <soren@gnyf.t.dk>
List: netbsd-bugs
Date: 04/02/1998 18:54:42
>Number:         5246
>Category:       kern
>Synopsis:       apm0 hangs on systems with 'apm_damn_fool_bios'en
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Apr  2 09:05:00 1998
>Last-Modified:
>Originator:     Soren S. Jorvang
>Organization:
Organization of PR author
>Release:        NetBSD-current 19980402
>Environment:
System: NetBSD gnyf.t.dk 1.3E i386


>Description:
On a system of mine where apm_damn_fool_bios is necessary, apm0
randomly wedges the system completely because apm_damn_fool_bios
is only set in the 'suspend' case and not in the 'standby' case.


>How-To-Repeat:
Enable apm0 on system with lossy APM BIOS and wait a few minutes.


>Fix:
--- src/sys/arch/i386/i386/apm.c.orig	Thu Apr  2 18:00:34 1998
+++ src/sys/arch/i386/i386/apm.c	Thu Apr  2 17:59:25 1998
@@ -412,6 +412,8 @@
 		if (apm_standbys || apm_suspends)
 			DPRINTF(APMDEBUG_EVENTS | APMDEBUG_ANOM,
 			    ("damn fool BIOS did not wait for answer\n"));
+			/* just give up the fight */
+			apm_damn_fool_bios = 1;
 		if (apm_do_standby) {
 			if (apm_record_event(sc, regs->bx))
 				apm_standbys++;
>Audit-Trail:
>Unformatted: