summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/acpi_pcib_acpi.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2002-08-26 15:12:47 +0000
committerjhb <jhb@FreeBSD.org>2002-08-26 15:12:47 +0000
commit76ee9d6272c26471e38c81e39273139854083d0d (patch)
tree4582718d460a65ee70565c1f633fed327dff4735 /sys/dev/acpica/acpi_pcib_acpi.c
parentea1a1404ad4b6a4d52978b00b93fbd47d5a0faaf (diff)
downloadFreeBSD-src-76ee9d6272c26471e38c81e39273139854083d0d.zip
FreeBSD-src-76ee9d6272c26471e38c81e39273139854083d0d.tar.gz
In acpi_pcib_route_interrupt(), the code claims to check to see if a PCI
LNK device (interrupt source provider sort of) is present before using it, but the code actually tested the status (_STA) of the PCI bridge device doing the routing, not the actual LNK device. Fix it to check the status of the LNK device.
Diffstat (limited to 'sys/dev/acpica/acpi_pcib_acpi.c')
-rw-r--r--sys/dev/acpica/acpi_pcib_acpi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/acpica/acpi_pcib_acpi.c b/sys/dev/acpica/acpi_pcib_acpi.c
index 5bc7794..2549387 100644
--- a/sys/dev/acpica/acpi_pcib_acpi.c
+++ b/sys/dev/acpica/acpi_pcib_acpi.c
@@ -395,8 +395,8 @@ acpi_pcib_route_interrupt(device_t pcib, device_t dev, int pin)
prt->Source, devinfo.HardwareId);
goto out;
}
- if (!acpi_DeviceIsPresent(sc->ap_dev)) {
- device_printf(sc->ap_dev, "PCI interrupt link device %s not present\n",
+ if (devinfo.Valid & ACPI_VALID_STA && (devinfo.CurrentStatus & 0x9) != 0x9) {
+ device_printf(pcib, "PCI interrupt link device %s not present\n",
prt->Source);
goto out;
}
OpenPOWER on IntegriCloud