summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica/Osd
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-06-11 16:48:59 +0000
committerjkim <jkim@FreeBSD.org>2009-06-11 16:48:59 +0000
commit3b251954d024e0fb3b20bd953f5ec93d95449a43 (patch)
treea9d0f4cfb4e4add50b61c2c83e27fcdcd0f96a8c /sys/dev/acpica/Osd
parent6e90fbd7cbc53afa082f37a69ffe5aee40621aa4 (diff)
downloadFreeBSD-src-3b251954d024e0fb3b20bd953f5ec93d95449a43.zip
FreeBSD-src-3b251954d024e0fb3b20bd953f5ec93d95449a43.tar.gz
- Remove unnecessary read memory barriers from atomic operations[1].
- Define a macro to make my intention more clearer. Submitted by: jhb [1]
Diffstat (limited to 'sys/dev/acpica/Osd')
-rw-r--r--sys/dev/acpica/Osd/OsdSchedule.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/acpica/Osd/OsdSchedule.c b/sys/dev/acpica/Osd/OsdSchedule.c
index 180c362..b8153a3 100644
--- a/sys/dev/acpica/Osd/OsdSchedule.c
+++ b/sys/dev/acpica/Osd/OsdSchedule.c
@@ -72,6 +72,7 @@ struct acpi_task_ctx {
ACPI_OSD_EXEC_CALLBACK at_function;
void *at_context;
int at_flag;
+#define ACPI_TASK_FREE 0
#define ACPI_TASK_USED 1
#define ACPI_TASK_ENQUEUED 2
};
@@ -111,7 +112,7 @@ acpi_taskq_init(void *arg)
printf("AcpiOsExecute: enqueue %d pending tasks\n",
acpi_task_count);
for (i = 0; i < acpi_max_tasks; i++)
- if (atomic_cmpset_acq_int(&acpi_tasks[i].at_flag, ACPI_TASK_USED,
+ if (atomic_cmpset_int(&acpi_tasks[i].at_flag, ACPI_TASK_USED,
ACPI_TASK_USED | ACPI_TASK_ENQUEUED))
taskqueue_enqueue(acpi_taskq, &acpi_tasks[i].at_task);
}
@@ -142,7 +143,8 @@ acpi_task_enqueue(int priority, ACPI_OSD_EXEC_CALLBACK Function, void *Context)
int i;
for (at = NULL, i = 0; i < acpi_max_tasks; i++)
- if (atomic_cmpset_acq_int(&acpi_tasks[i].at_flag, 0, ACPI_TASK_USED)) {
+ if (atomic_cmpset_int(&acpi_tasks[i].at_flag, ACPI_TASK_FREE,
+ ACPI_TASK_USED)) {
at = &acpi_tasks[i];
acpi_task_count++;
break;
OpenPOWER on IntegriCloud