Subject: port-i386/13639: i386 PNPBIOS code sometime prints false/incorrect info.
To: None <gnats-bugs@gnats.netbsd.org>
From: Paul Shupak <paul@Plectere.com>
List: netbsd-bugs
Date: 08/06/2001 00:44:16
>Number:         13639
>Category:       port-i386
>Synopsis:       Incorrect values of the PNP node's index may be printed.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Aug 06 00:41:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Paul Shupak
>Release:        Mon Aug  6 00:31:27 PDT 2001
>Organization:
>Environment:
	
System: NetBSD new-cobalt 1.5X NetBSD 1.5X (ATHALON-$Revision: 1.7 $) #107: Fri Aug 3 19:03:59 PDT 2001 paul@new-cobalt:/usr/src/sys/arch/i386/compile/ATHALON i386
Architecture: i386
Machine: i386
>Description:
When the PNPBIOS nodes' indices are not sequential OR don't begin at zero
(e.g.  many BIOS's start at index "1" and/or skip intermediate indicies),
the incorrect value is printed AND is then used for further function calls.
>How-To-Repeat:
	configure the "PNPBIOS" option into a kernel an boot on any of
several Taiwanese motherboard (e.g. at least my several ASUS, and some
ABITs and Tyans )
>Fix:
Index: pnpbios.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/i386/pnpbios/pnpbios.c,v
retrieving revision 1.23
diff -r1.23 pnpbios.c
409c409
< 		if (dn->dn_handle != node)
---
> 		if (dn->dn_handle != node) {
412a413,414
> 			node = dn->dn_handle;
> 		}
428c430
< 		if (dn->dn_handle != node)
---
> 		if (dn->dn_handle != node) {
431a434,435
> 			node = dn->dn_handle;
> 		}
>Release-Note:
>Audit-Trail:
>Unformatted: