mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-19 10:53:58 +00:00
Fix "Lock ACPI PCI link not exclusively locked
@sys/dev/acpica/acpi_pci_link.c:153" panic by backing out rev 1.37 in the SMP case. It appears that on a dual-proc machine the assertions in the rev 1.37 commit log hold true.
This commit is contained in:
parent
69fb23b73d
commit
0297d51ea3
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=138248
@ -270,6 +270,9 @@ acpi_pci_link_dump(struct acpi_pci_link_softc *sc)
|
||||
struct link *link;
|
||||
int i, j;
|
||||
|
||||
#ifdef SMP
|
||||
ACPI_SERIAL_ASSERT(pci_link);
|
||||
#endif
|
||||
printf("Index IRQ Rtd Ref IRQs\n");
|
||||
for (i = 0; i < sc->pl_num_links; i++) {
|
||||
link = &sc->pl_links[i];
|
||||
@ -293,6 +296,9 @@ acpi_pci_link_attach(device_t dev)
|
||||
int prslinks;
|
||||
|
||||
sc = device_get_softc(dev);
|
||||
#ifdef SMP
|
||||
ACPI_SERIAL_BEGIN(pci_link);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Count the number of current resources so we know how big of
|
||||
@ -377,9 +383,15 @@ acpi_pci_link_attach(device_t dev)
|
||||
device_printf(dev, "Links after disable:\n");
|
||||
acpi_pci_link_dump(sc);
|
||||
}
|
||||
#ifdef SMP
|
||||
ACPI_SERIAL_END(pci_link);
|
||||
#endif
|
||||
return (0);
|
||||
|
||||
fail:
|
||||
#ifdef SMP
|
||||
ACPI_SERIAL_END(pci_link);
|
||||
#endif
|
||||
for (i = 0; i < sc->pl_num_links; i++)
|
||||
if (sc->pl_links[i].l_irqs != NULL)
|
||||
free(sc->pl_links[i].l_irqs, M_PCI_LINK);
|
||||
|
Loading…
Reference in New Issue
Block a user