Rip out the badly designed softint-based taskqueue used by ACPI for callbacks.
authorMatthew Dillon <dillon@dragonflybsd.org>
Mon, 2 Aug 2004 19:51:09 +0000 (19:51 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Mon, 2 Aug 2004 19:51:09 +0000 (19:51 +0000)
commit87b510d505b5a57cae8d9c14ec2e0c758d4d863d
treeac5ab159bedf80c767f0368dee879e3f89608bf6
parentda3639ef47f4cf8d1b6e2444959fc2441c74caa9
Rip out the badly designed softint-based taskqueue used by ACPI for callbacks.
This was deadlocking tsleep() calls made from AcpiOsSleep() when early ACPI
interrupts occured, such as when a laptop is booted without AC connected.

Use a kernel thread and LWKT messaging to queue callbacks requests and add
code to use DELAY instead of tsleep() for calls made to AcpiOsSleep() in
early boot before the system timeout/ticks subsystem is initialized.

Fix two bugged AcpiOsSleep() calls that were sleeping for 10 seconds instead
of 10 milliseconds.
sys/dev/acpica5/Osd/OsdSchedule.c
sys/dev/acpica5/acpi.c
sys/dev/acpica5/acpi_acad.c
sys/dev/acpica5/acpi_cmbat.c
sys/dev/acpica5/acpivar.h