aboutsummaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorNate Lawson <njl@FreeBSD.org>2007-03-26 19:38:28 +0000
committerNate Lawson <njl@FreeBSD.org>2007-03-26 19:38:28 +0000
commite49e68cc9d2795cb65891049ade9d6203bbb758a (patch)
treeea2d1b3c294251274ee1dd98db1f57c6c94d1ab7 /sys/dev
parent2701afd004014f297e90160669cc5113e3a9ca20 (diff)
Notes
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/acpica/Osd/OsdSynch.c13
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);
}
/*