diff options
| -rw-r--r-- | 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 f1dd1b07d482..b0be2f46d249 100644 --- a/drivers/acpi/executer/exmutex.c +++ b/drivers/acpi/executer/exmutex.c | |||
| @@ -329,6 +329,12 @@ acpi_ex_release_mutex(union acpi_operand_object *obj_desc, | |||
| 329 | * | 329 | * |
| 330 | * DESCRIPTION: Release all mutexes held by this thread | 330 | * DESCRIPTION: Release all mutexes held by this thread |
| 331 | * | 331 | * |
| 332 | * NOTE: This function is called as the thread is exiting the interpreter. | ||
| 333 | * Mutexes are not released when an individual control method is exited, but | ||
| 334 | * only when the parent thread actually exits the interpreter. This allows one | ||
| 335 | * method to acquire a mutex, and a different method to release it, as long as | ||
| 336 | * this is performed underneath a single parent control method. | ||
| 337 | * | ||
| 332 | ******************************************************************************/ | 338 | ******************************************************************************/ |
| 333 | 339 | ||
| 334 | void acpi_ex_release_all_mutexes(struct acpi_thread_state *thread) | 340 | 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) | |||
| 346 | 352 | ||
| 347 | obj_desc->mutex.prev = NULL; | 353 | obj_desc->mutex.prev = NULL; |
| 348 | obj_desc->mutex.next = NULL; | 354 | obj_desc->mutex.next = NULL; |
| 349 | obj_desc->mutex.acquisition_depth = 1; | 355 | obj_desc->mutex.acquisition_depth = 0; |
| 350 | 356 | ||
| 351 | /* Release the mutex, special case for Global Lock */ | 357 | /* Release the mutex, special case for Global Lock */ |
| 352 | 358 | ||
