Subject: kern/5554: isapnp screws devices
To: None <gnats-bugs@gnats.netbsd.org>
From: Michael Graff <explorer@flame.org>
List: netbsd-bugs
Date: 06/07/1998 19:55:22
>Number:         5554
>Category:       kern
>Synopsis:       isapnp screws devices
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people (Kernel Bug People)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jun  7 20:05:02 1998
>Last-Modified:
>Originator:     Michael Graff
>Organization:
flame.org:  yes, we do know everything
>Release:        NetBSD-1.3.2 stock
>Environment:
	
System: NetBSD flame.lh.vix.com 1.3.2 NetBSD 1.3.2 (KECHARA) #0: Wed May 20 01:24:12 PDT 1998 root@:/u1/OS/NetBSD/src/sys/arch/i386/compile/KECHARA i386


>Description:
When the kernel is probing for devices the isapnp layer screws over
some other already probed devices.

This happens when an isapnp card defaults to an address that is probed
in the isa probe, and then later reset/moved in the isapnp code.

For instance, I have a modem that defaults to "com2" address:

com2 at isa0 port 0x3e8-0x3ef irq 5: ns16550a, working fifo

But, isapnp comes along and resets the card:

isapnp0 at isa0 port 0x279: read port 0x203
isapnp0: <33.6Modem, ROK0010, , > ignored; resource conflict

This makes my 1.3.2 install lock up on "ttyflags" in /etc/rc.
>How-To-Repeat:
Boot my machine with this particular card.  I'm certain there are others.
>Fix:
My guess is that the isapnp "bus" needs to be reset before the isa bus
is probed:

	reset isapnp devices
	prove for isa devices
	probe for isapnp devices

This will probably screw over the probing code, making a special case
for isapnp.  However, this is the real world, eh?

--Michael
>Audit-Trail:
>Unformatted: