summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_pcib.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2005-03-08 17:22:11 +0000
committerjhb <jhb@FreeBSD.org>2005-03-08 17:22:11 +0000
commit13c0caff54bee55b4c78fd0e3721edd7f44772d7 (patch)
tree9cef19d79b9e7e159c15d4e32ae5ba45d8b78786 /sys/dev/acpica/acpi_pcib.c
parent228aadaa1558642e3443dd7806a3bd9272fe5684 (diff)
downloadFreeBSD-src-13c0caff54bee55b4c78fd0e3721edd7f44772d7.zip
FreeBSD-src-13c0caff54bee55b4c78fd0e3721edd7f44772d7.tar.gz
- If we fail to find an entry in the PRT, output a warning message.
- Fix a bug in the same condition where we forgot to drop the ACPI pcib lock. This fixes hangs after the pcib0 attach on some machines. Tested by: sos (2)
Diffstat (limited to 'sys/dev/acpica/acpi_pcib.c')
-rw-r--r--sys/dev/acpica/acpi_pcib.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/dev/acpica/acpi_pcib.c b/sys/dev/acpica/acpi_pcib.c
index 0585e20..35c99ed 100644
--- a/sys/dev/acpica/acpi_pcib.c
+++ b/sys/dev/acpica/acpi_pcib.c
@@ -218,10 +218,13 @@ acpi_pcib_route_interrupt(device_t pcib, device_t dev, int pin,
pr.pr_pin = pin;
pr.pr_slot = pci_get_slot(dev);
prt_walk_table(prtbuf, prt_lookup_device, &pr);
- if (pr.pr_entry == NULL)
- return (PCI_INVALID_IRQ);
+ if (pr.pr_entry == NULL) {
+ device_printf(pcib, "no PRT entry for %d.%d.INT%c", pci_get_bus(dev),
+ pci_get_slot(dev), 'A' + pin);
+ goto out;
+ }
prt = pr.pr_entry;
-
+
if (bootverbose) {
device_printf(pcib, "matched entry for %d.%d.INT%c",
pci_get_bus(dev), pci_get_slot(dev), 'A' + pin);
OpenPOWER on IntegriCloud