mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 08:58:07 +00:00
ACPICA: haiku: Fix invalid value used for semaphores
ACPICA commit 49fe4f25483feec2f685b204ef19e28d92979e95 In Haiku, semaphores are represented by integers, not pointers. So, we can't use NULL as the invalid/destroyed value, the correct value is -1. Introduce a platform overridable define to allow this. Fixes #162 (which was closed after coming to the conclusion that this should be done, but the change was never done). Link: https://github.com/acpica/acpica/commit/49fe4f25 Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
36b5c1dc4b
commit
7afea7bc49
3 changed files with 9 additions and 3 deletions
|
@ -140,7 +140,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object)
|
||||||
(void)
|
(void)
|
||||||
acpi_os_delete_semaphore
|
acpi_os_delete_semaphore
|
||||||
(acpi_gbl_global_lock_semaphore);
|
(acpi_gbl_global_lock_semaphore);
|
||||||
acpi_gbl_global_lock_semaphore = NULL;
|
acpi_gbl_global_lock_semaphore = ACPI_SEMAPHORE_NULL;
|
||||||
|
|
||||||
acpi_os_delete_mutex(object->mutex.os_mutex);
|
acpi_os_delete_mutex(object->mutex.os_mutex);
|
||||||
acpi_gbl_global_lock_mutex = NULL;
|
acpi_gbl_global_lock_mutex = NULL;
|
||||||
|
@ -157,7 +157,7 @@ static void acpi_ut_delete_internal_obj(union acpi_operand_object *object)
|
||||||
object, object->event.os_semaphore));
|
object, object->event.os_semaphore));
|
||||||
|
|
||||||
(void)acpi_os_delete_semaphore(object->event.os_semaphore);
|
(void)acpi_os_delete_semaphore(object->event.os_semaphore);
|
||||||
object->event.os_semaphore = NULL;
|
object->event.os_semaphore = ACPI_SEMAPHORE_NULL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ACPI_TYPE_METHOD:
|
case ACPI_TYPE_METHOD:
|
||||||
|
|
|
@ -154,7 +154,7 @@ acpi_status acpi_ut_init_globals(void)
|
||||||
|
|
||||||
/* Global Lock support */
|
/* Global Lock support */
|
||||||
|
|
||||||
acpi_gbl_global_lock_semaphore = NULL;
|
acpi_gbl_global_lock_semaphore = ACPI_SEMAPHORE_NULL;
|
||||||
acpi_gbl_global_lock_mutex = NULL;
|
acpi_gbl_global_lock_mutex = NULL;
|
||||||
acpi_gbl_global_lock_acquired = FALSE;
|
acpi_gbl_global_lock_acquired = FALSE;
|
||||||
acpi_gbl_global_lock_handle = 0;
|
acpi_gbl_global_lock_handle = 0;
|
||||||
|
|
|
@ -252,6 +252,12 @@
|
||||||
#define ACPI_RELEASE_GLOBAL_LOCK(Glptr, pending) pending = 0
|
#define ACPI_RELEASE_GLOBAL_LOCK(Glptr, pending) pending = 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* NULL/invalid value to use for destroyed or not-yet-created semaphores. */
|
||||||
|
|
||||||
|
#ifndef ACPI_SEMAPHORE_NULL
|
||||||
|
#define ACPI_SEMAPHORE_NULL NULL
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Flush CPU cache - used when going to sleep. Wbinvd or similar. */
|
/* Flush CPU cache - used when going to sleep. Wbinvd or similar. */
|
||||||
|
|
||||||
#ifndef ACPI_FLUSH_CPU_CACHE
|
#ifndef ACPI_FLUSH_CPU_CACHE
|
||||||
|
|
Loading…
Reference in a new issue