svn commit: r194011 - head/sys/dev/acpica/Osd

Jung-uk Kim jkim at FreeBSD.org
Thu Jun 11 16:49:01 UTC 2009


Author: jkim
Date: Thu Jun 11 16:48:59 2009
New Revision: 194011
URL: http://svn.freebsd.org/changeset/base/194011

Log:
  - Remove unnecessary read memory barriers from atomic operations[1].
  - Define a macro to make my intention more clearer.
  
  Submitted by:	jhb [1]

Modified:
  head/sys/dev/acpica/Osd/OsdSchedule.c

Modified: head/sys/dev/acpica/Osd/OsdSchedule.c
==============================================================================
--- head/sys/dev/acpica/Osd/OsdSchedule.c	Thu Jun 11 15:51:14 2009	(r194010)
+++ head/sys/dev/acpica/Osd/OsdSchedule.c	Thu Jun 11 16:48:59 2009	(r194011)
@@ -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
     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;


More information about the svn-src-head mailing list