diff options
author | jhb <jhb@FreeBSD.org> | 2006-01-06 16:14:32 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2006-01-06 16:14:32 +0000 |
commit | c3c1fed1fa10387bb1a927be20aa05f026378186 (patch) | |
tree | 2d7548d8507cad0b714aee08a3d2e5a09cb345b4 | |
parent | 7b907043bc15d13f18391093baf848921d8a0149 (diff) | |
download | FreeBSD-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.c | 7 |
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]++; |