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 | |
parent | 120bda20c6f64b32e8bfbdd7b34feafaa5f5332e (diff) | |
download | op-kernel-dev-ab8aa06a5c0b75974fb1949365cbb20a15cedf14.zip op-kernel-dev-ab8aa06a5c0b75974fb1949365cbb20a15cedf14.tar.gz |
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')
-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 56b8024..fbafee6 100644 --- a/include/acpi/aclocal.h +++ b/include/acpi/aclocal.h @@ -127,7 +127,7 @@ typedef u8 acpi_owner_id; /* This Thread ID means that the mutex is not in use (unlocked) */ -#define ACPI_MUTEX_NOT_ACQUIRED (u32) -1 +#define ACPI_MUTEX_NOT_ACQUIRED (acpi_thread_id) 0 /* Table for the global mutexes */ diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 3f853ca..1cb51bf 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h @@ -59,6 +59,7 @@ #include <asm/acpi.h> #include <linux/slab.h> #include <linux/spinlock_types.h> +#include <asm/current.h> /* Host-dependent types and defines */ @@ -100,8 +101,8 @@ #define acpi_cpu_flags unsigned long -#define acpi_thread_id u32 +#define acpi_thread_id struct task_struct * -static inline acpi_thread_id acpi_os_get_thread_id(void) { return 0; } +static inline acpi_thread_id acpi_os_get_thread_id(void) { return current; } #endif /* __ACLINUX_H__ */ |