Subject: Re: kern/37527: panic: pci_make_tag: bad request
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Jared D. McNeill <jmcneill@invisible.ca>
List: netbsd-bugs
Date: 12/12/2007 22:35:02
The following reply was made to PR kern/37527; it has been noted by GNATS.

From: "Jared D. McNeill" <jmcneill@invisible.ca>
To: gnats-bugs@NetBSD.org
Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
	netbsd-bugs@netbsd.org, yamt@mwd.biglobe.ne.jp
Subject: Re: kern/37527: panic: pci_make_tag: bad request
Date: Wed, 12 Dec 2007 17:31:47 -0500 (EST)

 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,