diff options
author | jhb <jhb@FreeBSD.org> | 2005-03-08 17:22:11 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2005-03-08 17:22:11 +0000 |
commit | 13c0caff54bee55b4c78fd0e3721edd7f44772d7 (patch) | |
tree | 9cef19d79b9e7e159c15d4e32ae5ba45d8b78786 /sys/dev/acpica/acpi_pcib.c | |
parent | 228aadaa1558642e3443dd7806a3bd9272fe5684 (diff) | |
download | FreeBSD-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.c | 9 |
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); |