Subject: Re: kern/37527: panic: pci_make_tag: bad request
To: None <gnats-bugs@NetBSD.org>
From: Jared D. McNeill <jmcneill@invisible.ca>
List: netbsd-bugs
Date: 12/12/2007 17:31:47
On Wed, 12 Dec 2007, Jared D. McNeill wrote:
> On Wed, 12 Dec 2007, yamt@mwd.biglobe.ne.jp wrote:
> > acpi0 at mainbus0: Advanced Configuration and Power Interface
> > panic: pci_make_tag: bad request
>
> Can you attach your DSDT to this PR?

There is an entry in your DSDT that is causing this failure:

                 Device (DOBA)
                 {
                     Name (_ADR, 0xFFFFFFFF)
 		    [...]

The upper and lower 16 bits are passed, unchecked, to pci_make_tag in 
mpacpi_derive_bus. Can you try the following patch?

Cheers,
Jared

--- mpacpi.c    9 Dec 2007 20:27:50 -0000       1.55
+++ mpacpi.c    12 Dec 2007 22:31:14 -0000
@@ -547,7 +547,7 @@
          */
         TAILQ_FOREACH(dev, &dev_list, list) {
                 rv = acpi_eval_integer(dev->handle, METHOD_NAME__ADR, 
&val);
-               if (ACPI_FAILURE(rv))
+               if (ACPI_FAILURE(rv) || val == 0xffffffff)
                         return -1;

                 tag = pci_make_tag(acpi->sc_pc, bus,