Print this page
acpica-unix2-20130823
PANKOVs restructure
*** 1,14 ****
-
/******************************************************************************
*
* Module Name: exmutex - ASL Mutex Acquire/Release functions
*
*****************************************************************************/
/*
! * Copyright (C) 2000 - 2011, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
--- 1,13 ----
/******************************************************************************
*
* Module Name: exmutex - ASL Mutex Acquire/Release functions
*
*****************************************************************************/
/*
! * Copyright (C) 2000 - 2013, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*** 339,349 ****
ACPI_FUNCTION_TRACE (ExReleaseMutexObject);
if (ObjDesc->Mutex.AcquisitionDepth == 0)
{
! return (AE_NOT_ACQUIRED);
}
/* Match multiple Acquires with multiple Releases */
ObjDesc->Mutex.AcquisitionDepth--;
--- 338,348 ----
ACPI_FUNCTION_TRACE (ExReleaseMutexObject);
if (ObjDesc->Mutex.AcquisitionDepth == 0)
{
! return_ACPI_STATUS (AE_NOT_ACQUIRED);
}
/* Match multiple Acquires with multiple Releases */
ObjDesc->Mutex.AcquisitionDepth--;
*** 513,523 ****
{
ACPI_OPERAND_OBJECT *Next = Thread->AcquiredMutexList;
ACPI_OPERAND_OBJECT *ObjDesc;
! ACPI_FUNCTION_ENTRY ();
/* Traverse the list of owned mutexes, releasing each one */
while (Next)
--- 512,522 ----
{
ACPI_OPERAND_OBJECT *Next = Thread->AcquiredMutexList;
ACPI_OPERAND_OBJECT *ObjDesc;
! ACPI_FUNCTION_NAME (ExReleaseAllMutexes);
/* Traverse the list of owned mutexes, releasing each one */
while (Next)
*** 527,536 ****
--- 526,538 ----
ObjDesc->Mutex.Prev = NULL;
ObjDesc->Mutex.Next = NULL;
ObjDesc->Mutex.AcquisitionDepth = 0;
+ ACPI_DEBUG_PRINT ((ACPI_DB_EXEC,
+ "Force-releasing held mutex: %p\n", ObjDesc));
+
/* Release the mutex, special case for Global Lock */
if (ObjDesc == AcpiGbl_GlobalLockMutex)
{
/* Ignore errors */