summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-01-06 16:14:32 +0000
committerjhb <jhb@FreeBSD.org>2006-01-06 16:14:32 +0000
commitc3c1fed1fa10387bb1a927be20aa05f026378186 (patch)
tree2d7548d8507cad0b714aee08a3d2e5a09cb345b4
parent7b907043bc15d13f18391093baf848921d8a0149 (diff)
downloadFreeBSD-src-c3c1fed1fa10387bb1a927be20aa05f026378186.zip
FreeBSD-src-c3c1fed1fa10387bb1a927be20aa05f026378186.tar.gz
Be a little more forgiving of lame BIOS writers. If a link device that
doesn't have any actual interrupts is listed in a _PRT entry, only print a warning rather than panic'ing when we walk the _PRT's to build up count of entries that reference a given link (the counts are used as weights so that we can attempt to balance the load across IRQs used by link devices). Instead, only panic if we attempt to use the _PRT entry to route an interrupt for a device. PR: i386/89545 Tested by: anders
-rw-r--r--sys/dev/acpica/acpi_pci_link.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_pci_link.c b/sys/dev/acpica/acpi_pci_link.c
index 517fd26..91a4f5f 100644
--- a/sys/dev/acpica/acpi_pci_link.c
+++ b/sys/dev/acpica/acpi_pci_link.c
@@ -627,8 +627,11 @@ acpi_pci_link_add_reference(device_t dev, int index, device_t pcib, int slot,
/* Bump the reference count. */
ACPI_SERIAL_BEGIN(pci_link);
link = acpi_pci_link_lookup(dev, index);
- if (link == NULL)
- panic("%s: apparently invalid index %d", __func__, index);
+ if (link == NULL) {
+ device_printf(dev, "apparently invalid index %d\n", index);
+ ACPI_SERIAL_END(pci_link);
+ return;
+ }
link->l_references++;
if (link->l_routed)
pci_link_interrupt_weights[link->l_irq]++;
OpenPOWER on IntegriCloud