From bbdd9137672564c57f2c4bf8a00ca1e9c0b8d455 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: <410c2f0190f74c35505beda6ff3f2da7819f8bac.1164352285.git.len.brown@intel.com> References: <410c2f0190f74c35505beda6ff3f2da7819f8bac.1164352285.git.len.brown@intel.com> From: Robert Moore Date: Tue, 14 Nov 2006 20:06:05 +0300 Subject: [PATCH 44/65] ACPICA: On AML mutex force-release, set depth to zero (was 1). Reply-To: Len Brown Organization: Intel Open Source Technology Center Signed-off-by: Alexey Starikovskiy Signed-off-by: Len Brown --- drivers/acpi/executer/exmutex.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/drivers/acpi/executer/exmutex.c b/drivers/acpi/executer/exmutex.c index e30cc53..4ae1d83 100644 --- a/drivers/acpi/executer/exmutex.c +++ b/drivers/acpi/executer/exmutex.c @@ -329,6 +329,12 @@ acpi_ex_release_mutex(union acpi_operand * * DESCRIPTION: Release all mutexes held by this thread * + * NOTE: This function is called as the thread is exiting the interpreter. + * Mutexes are not released when an individual control method is exited, but + * only when the parent thread actually exits the interpreter. This allows one + * method to acquire a mutex, and a different method to release it, as long as + * this is performed underneath a single parent control method. + * ******************************************************************************/ void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread) @@ -346,7 +352,7 @@ void acpi_ex_release_all_mutexes(struct obj_desc->mutex.prev = NULL; obj_desc->mutex.next = NULL; - obj_desc->mutex.acquisition_depth = 1; + obj_desc->mutex.acquisition_depth = 0; /* Release the mutex, special case for Global Lock */ -- 1.4.4.1