diff options
author | Len Brown <len.brown@intel.com> | 2006-07-07 20:11:07 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-07-09 15:19:44 -0400 |
commit | ab8aa06a5c0b75974fb1949365cbb20a15cedf14 (patch) | |
tree | 8498b3b3222198c45fa322b6fdd3215687dc30e4 /include/acpi | |
parent | 120bda20c6f64b32e8bfbdd7b34feafaa5f5332e (diff) |
ACPI: acpi_os_get_thread_id() returns current
Linux mutexes and the debug code that that reference
acpi_os_get_thread_id() are happy with 0.
But the AML mutexes in exmutex.c expect a unique non-zero
number for each thread - as they track this thread_id
to permit the mutex re-entrancy defined by the ACPI spec.
http://bugzilla.kernel.org/show_bug.cgi?id=6687
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/acpi')
-rw-r--r-- | include/acpi/aclocal.h | 2 | ||||
-rw-r--r-- | include/acpi/platform/aclinux.h | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h index 56b802486161..fbafee6e56d3 100644 --- a/include/acpi/aclocal.h +++ b/include/acpi/aclocal.h | |||
@@ -127,7 +127,7 @@ typedef u8 acpi_owner_id; | |||
127 | 127 | ||
128 | /* This Thread ID means that the mutex is not in use (unlocked) */ | 128 | /* This Thread ID means that the mutex is not in use (unlocked) */ |
129 | 129 | ||
130 | #define ACPI_MUTEX_NOT_ACQUIRED (u32) -1 | 130 | #define ACPI_MUTEX_NOT_ACQUIRED (acpi_thread_id) 0 |
131 | 131 | ||
132 | /* Table for the global mutexes */ | 132 | /* Table for the global mutexes */ |
133 | 133 | ||
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 3f853cabbd41..1cb51bf96ece 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h | |||
@@ -59,6 +59,7 @@ | |||
59 | #include <asm/acpi.h> | 59 | #include <asm/acpi.h> |
60 | #include <linux/slab.h> | 60 | #include <linux/slab.h> |
61 | #include <linux/spinlock_types.h> | 61 | #include <linux/spinlock_types.h> |
62 | #include <asm/current.h> | ||
62 | 63 | ||
63 | /* Host-dependent types and defines */ | 64 | /* Host-dependent types and defines */ |
64 | 65 | ||
@@ -100,8 +101,8 @@ | |||
100 | 101 | ||
101 | #define acpi_cpu_flags unsigned long | 102 | #define acpi_cpu_flags unsigned long |
102 | 103 | ||
103 | #define acpi_thread_id u32 | 104 | #define acpi_thread_id struct task_struct * |
104 | 105 | ||
105 | static inline acpi_thread_id acpi_os_get_thread_id(void) { return 0; } | 106 | static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; } |
106 | 107 | ||
107 | #endif /* __ACLINUX_H__ */ | 108 | #endif /* __ACLINUX_H__ */ |