aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/utilities
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/utilities')
-rw-r--r--drivers/acpi/utilities/utmisc.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/drivers/acpi/utilities/utmisc.c b/drivers/acpi/utilities/utmisc.c
index f6de4ed3d527..bb658777fa88 100644
--- a/drivers/acpi/utilities/utmisc.c
+++ b/drivers/acpi/utilities/utmisc.c
@@ -787,7 +787,6 @@ acpi_ut_release_mutex (
787 acpi_mutex_handle mutex_id) 787 acpi_mutex_handle mutex_id)
788{ 788{
789 acpi_status status; 789 acpi_status status;
790 u32 i;
791 u32 this_thread_id; 790 u32 this_thread_id;
792 791
793 792
@@ -814,25 +813,32 @@ acpi_ut_release_mutex (
814 return (AE_NOT_ACQUIRED); 813 return (AE_NOT_ACQUIRED);
815 } 814 }
816 815
817 /* 816#ifdef ACPI_MUTEX_DEBUG
818 * Deadlock prevention. Check if this thread owns any mutexes of value 817 {
819 * greater than this one. If so, the thread has violated the mutex 818 u32 i;
820 * ordering rule. This indicates a coding error somewhere in 819 /*
821 * the ACPI subsystem code. 820 * Mutex debug code, for internal debugging only.
822 */ 821 *
823 for (i = mutex_id; i < MAX_MUTEX; i++) { 822 * Deadlock prevention. Check if this thread owns any mutexes of value
824 if (acpi_gbl_mutex_info[i].owner_id == this_thread_id) { 823 * greater than this one. If so, the thread has violated the mutex
825 if (i == mutex_id) { 824 * ordering rule. This indicates a coding error somewhere in
826 continue; 825 * the ACPI subsystem code.
827 } 826 */
827 for (i = mutex_id; i < MAX_MUTEX; i++) {
828 if (acpi_gbl_mutex_info[i].owner_id == this_thread_id) {
829 if (i == mutex_id) {
830 continue;
831 }
828 832
829 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR, 833 ACPI_DEBUG_PRINT ((ACPI_DB_ERROR,
830 "Invalid release order: owns [%s], releasing [%s]\n", 834 "Invalid release order: owns [%s], releasing [%s]\n",
831 acpi_ut_get_mutex_name (i), acpi_ut_get_mutex_name (mutex_id))); 835 acpi_ut_get_mutex_name (i), acpi_ut_get_mutex_name (mutex_id)));
832 836
833 return (AE_RELEASE_DEADLOCK); 837 return (AE_RELEASE_DEADLOCK);
838 }
834 } 839 }
835 } 840 }
841#endif
836 842
837 /* Mark unlocked FIRST */ 843 /* Mark unlocked FIRST */
838 844