From 05e35a2e04ffc907b1465d9c2d1b46c696693bc1 Mon Sep 17 00:00:00 2001 From: Bob Moore Date: Fri, 2 Feb 2007 19:48:21 +0300 Subject: [PATCH] --- yaml --- r: 46381 b: refs/heads/master c: f70a5e7b6c28e0b08f721204f4b98c5d1cfb44d9 h: refs/heads/master i: 46379: 5d52c0c424c589b49217f21bd4e49053e2d94fa0 v: v3 --- [refs] | 2 +- trunk/drivers/acpi/executer/exmutex.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 3e5d549a2a86..2627ae2aa429 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 310a7f7fee489b7dadd27b0d8487bd0ce66281e7 +refs/heads/master: f70a5e7b6c28e0b08f721204f4b98c5d1cfb44d9 diff --git a/trunk/drivers/acpi/executer/exmutex.c b/trunk/drivers/acpi/executer/exmutex.c index f1dd1b07d482..b0be2f46d249 100644 --- a/trunk/drivers/acpi/executer/exmutex.c +++ b/trunk/drivers/acpi/executer/exmutex.c @@ -329,6 +329,12 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc, * * 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 acpi_thread_state *thread) 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 */