Subject: Re: recent pnpbios lossage
To: Johan Danielsson <joda@pdc.kth.se>
From: John Hawkinson <jhawk@MIT.EDU>
List: port-i386
Date: 05/25/2000 10:54:49
| The fix for VAIO lossage breaks my TP600 laptop. It gets an error when
| trying to get static config data for devie node 11. The following ugly
| patch seems to fix this (by ignoring this error).

Ugh. I presume you're getting:

INVALID_HANDLE  83h
    "Device node number/handle passed is invalid or out of range."

Do you know why you're getting this? i.e. what is special about node
11, etc.? The current code makes the presumption that any valid index
for static configuration is still a valid index for dynamic configuration;
I think this is probably true, and I guess it doesn't seem to be particular
to your problem.

| Another bug in this code is that if getnode fails, idx will never be
| updated and it will (most likely) continue to fail, until i == num.

Hmm...yeah.

| +		    idx = dynidx; /* XXX totally bogus (but a good guess) */

I don't think that's totally bogus...

I keep wondering if we should have a mask of indexes to ignore and
some sort of quirk table to detect them. Unfortunately I'm not sure
what the quirk table would key off of. The best I can think of would
be finding vendor-specific data in the BIOS somewhere, but that seems
like a terribly ugly road to go down.

--jhawk