diff options
| author | Nate Lawson <njl@FreeBSD.org> | 2007-03-26 19:38:28 +0000 |
|---|---|---|
| committer | Nate Lawson <njl@FreeBSD.org> | 2007-03-26 19:38:28 +0000 |
| commit | e49e68cc9d2795cb65891049ade9d6203bbb758a (patch) | |
| tree | ea2d1b3c294251274ee1dd98db1f57c6c94d1ab7 /sys/dev | |
| parent | 2701afd004014f297e90160669cc5113e3a9ca20 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/acpica/Osd/OsdSynch.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/acpica/Osd/OsdSynch.c b/sys/dev/acpica/Osd/OsdSynch.c index d1952016de9e..14a79f1cf6b1 100644 --- a/sys/dev/acpica/Osd/OsdSynch.c +++ b/sys/dev/acpica/Osd/OsdSynch.c @@ -322,10 +322,16 @@ AcpiOsSignalSemaphore(ACPI_HANDLE Handle, UINT32 Units) return_ACPI_STATUS (AE_OK); } +/* Combined mutex + mutex name storage since the latter must persist. */ +struct acpi_mtx_msg { + struct mtx mtx; + char msg[32]; +}; + ACPI_STATUS AcpiOsCreateLock (ACPI_HANDLE *OutHandle) { - struct mtx *m; + struct acpi_mtx_msg *m; if (OutHandle == NULL) return (AE_BAD_PARAMETER); @@ -333,7 +339,9 @@ AcpiOsCreateLock (ACPI_HANDLE *OutHandle) if (m == NULL) return (AE_NO_MEMORY); - mtx_init(m, "acpica subsystem lock", NULL, MTX_DEF); + /* Build a unique name based on the address of the handle. */ + snprintf(m->msg, sizeof(m->msg), "acpi subsys %p", OutHandle); + mtx_init(&m->mtx, m->msg, NULL, MTX_DEF); *OutHandle = (ACPI_HANDLE)m; return (AE_OK); } @@ -346,6 +354,7 @@ AcpiOsDeleteLock (ACPI_HANDLE Handle) if (Handle == NULL) return; mtx_destroy(m); + free(m, M_ACPISEM); } /* |
