ACPICA: On AML mutex force-release, set depth to zero (was 1).
authorBob Moore <robert.moore@intel.com>
Fri, 2 Feb 2007 16:48:21 +0000 (19:48 +0300)
committerLen Brown <len.brown@intel.com>
Sat, 3 Feb 2007 02:14:26 +0000 (21:14 -0500)
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/executer/exmutex.c

index f1dd1b07d48229b48f945812c908c0c41d38cf1d..b0be2f46d2490fe7bdec4a3b92cbfdec280d911a 100644 (file)
@@ -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 */