cvs commit: src/sys/dev/acpica acpi_ec.c
njl at FreeBSD.org
Sat Jun 2 19:21:42 UTC 2007
njl 2007-06-02 19:21:41 UTC
FreeBSD src repository
AcpiAcquireGlobalLock() can sometimes sleep if the mutex is contested.
The global lock is a memory region shared with the BIOS and thus
has some strange behavior like the fact that the sleep is 1 ms max.
We use standard mutexes to synchronize with the SCI so acquiring
the global lock after locking the mutex resulted in a witness
To deal with this for now, acquire the global lock before all other
locks, similar to Giant. This should fix the witness "sleeping
with mutex held" issue on boot that occurred after the last ACPI-CA
import. In the future, we hope to move to the new mutex interface
in ACPI-CA instead of the pseudo-semaphore version we have now.
Reviewed by: jkim
Revision Changes Path
1.74 +10 -13 src/sys/dev/acpica/acpi_ec.c
More information about the cvs-all