Bottom: 44cd90e52fd7bd946e34e9acdfcf1cef88293c9a
-Top: 59952986bf11b417c6da864108e5278e0fbca08a
+Top: b4ed043a0fc86707acda56000b3096e59867bfbe
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-08-25 10:26:22 -0700
---
-diff --git a/Makefile.am b/Makefile.am
-index f443091..4bd4bd5 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,6 +2,10 @@ INCLUDES = -I$(srcdir)/include -I$(srcdir)/linux
-
- AM_CFLAGS = -g -Wall -D_GNU_SOURCE
-
-+if DEFINE_ATOMICS
-+ AM_CFLAGS += -DDEFINE_ATOMICS
-+endif
-+
- bin_PROGRAMS = util/ib_acme
- sbin_PROGRAMS = svc/ib_acm
- svc_ib_acm_SOURCES = src/acm.c
diff --git a/configure.in b/configure.in
old mode 100644
new mode 100755
-index 997c775..ce55f75
+index 997c775..dfddeac
--- a/configure.in
+++ b/configure.in
-@@ -39,6 +39,19 @@ AC_CHECK_HEADER(infiniband/umad.h, [],
+@@ -39,6 +39,16 @@ AC_CHECK_HEADER(infiniband/umad.h, [],
AC_MSG_ERROR([<infiniband/umad.h> not found. Is libibumad installed?]))\r
fi\r
\r
+dnl Check for gcc atomic intrinsics\r
+AC_MSG_CHECKING(compiler support for atomics)\r
-+AC_TRY_LINK([],\r
-+ [\r
-+ int i = 0;\r
-+ return __sync_add_and_fetch(&i, 1) == __sync_sub_and_fetch(&i, 1) + 1;\r
-+ ],\r
-+ AC_MSG_RESULT(yes),\r
++AC_TRY_LINK([int i = 0;],\r
++ [ return __sync_add_and_fetch(&i, 1) != __sync_sub_and_fetch(&i, 1); ],\r
++ [ AC_MSG_RESULT(yes) ],\r
+ [\r
-+ AC_MSG_RESULT(no - defining atomics)\r
-+ AC_DEFINE(DEFINE_ATOMICS, [], [Set to 1 to implement atomics])\r
++ AC_MSG_RESULT(no)\r
++ AC_DEFINE(DEFINE_ATOMICS, 1, [Set to 1 to implement atomics])\r
+ ])\r
+\r
AC_CACHE_CHECK(whether ld accepts --version-script, ac_cv_version_script,\r
if test -n "`$LD --help < /dev/null 2>/dev/null | grep version-script`"; then\r
ac_cv_version_script=yes\r
diff --git a/linux/osd.h b/linux/osd.h
-index 722e1b1..9a167a7 100644
+index 722e1b1..9dacab9 100644
--- a/linux/osd.h
+++ b/linux/osd.h
@@ -65,9 +65,27 @@
+#if DEFINE_ATOMICS\r
+typedef struct { pthread_mutex_t mut; int val; } atomic_t;\r
+#define atomic_inc(v) { \\r
-+ int v;\r
++ int x;\r
+ pthread_mutex_lock(&(v)->mut); \\r
-+ v = ++val; \\r
++ x = ++val; \\r
+ pthread_mutex_unlock(&(v)->mut); \\r
-+ return v; }\r
++ return x; }\r
+#define atomic_dec(v) { \\r
-+ int v;\r
++ int x;\r
+ pthread_mutex_lock(&(v)->mut); \\r
-+ v = --val; \\r
++ x = --val; \\r
+ pthread_mutex_unlock(&(v)->mut); \\r
-+ return v; }\r
++ return x; }\r
+#define atomic_init(v) { pthread_mutex_init(&(v)->mut, NULL); (v)->val = 0); }\r
+#else\r
typedef struct { volatile int val; } atomic_t;\r
+++ /dev/null
-Bottom: 59952986bf11b417c6da864108e5278e0fbca08a
-Top: b4ed043a0fc86707acda56000b3096e59867bfbe
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-08-25 16:49:51 -0700
-
-Refresh of atomic
-
----
-
-diff --git a/Makefile.am b/Makefile.am
-index 4bd4bd5..f443091 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,10 +2,6 @@ INCLUDES = -I$(srcdir)/include -I$(srcdir)/linux
-
- AM_CFLAGS = -g -Wall -D_GNU_SOURCE
-
--if DEFINE_ATOMICS
-- AM_CFLAGS += -DDEFINE_ATOMICS
--endif
--
- bin_PROGRAMS = util/ib_acme
- sbin_PROGRAMS = svc/ib_acm
- svc_ib_acm_SOURCES = src/acm.c
-diff --git a/configure.in b/configure.in
-index ce55f75..dfddeac 100755
---- a/configure.in
-+++ b/configure.in
-@@ -41,15 +41,12 @@ fi
- \r
- dnl Check for gcc atomic intrinsics\r
- AC_MSG_CHECKING(compiler support for atomics)\r
--AC_TRY_LINK([],\r
-+AC_TRY_LINK([int i = 0;],\r
-+ [ return __sync_add_and_fetch(&i, 1) != __sync_sub_and_fetch(&i, 1); ],\r
-+ [ AC_MSG_RESULT(yes) ],\r
- [\r
-- int i = 0;\r
-- return __sync_add_and_fetch(&i, 1) == __sync_sub_and_fetch(&i, 1) + 1;\r
-- ],\r
-- AC_MSG_RESULT(yes),\r
-- [\r
-- AC_MSG_RESULT(no - defining atomics)\r
-- AC_DEFINE(DEFINE_ATOMICS, [], [Set to 1 to implement atomics])\r
-+ AC_MSG_RESULT(no)\r
-+ AC_DEFINE(DEFINE_ATOMICS, 1, [Set to 1 to implement atomics])\r
- ])\r
- \r
- AC_CACHE_CHECK(whether ld accepts --version-script, ac_cv_version_script,\r
-diff --git a/linux/osd.h b/linux/osd.h
-index 9a167a7..9dacab9 100644
---- a/linux/osd.h
-+++ b/linux/osd.h
-@@ -68,17 +68,17 @@
- #if DEFINE_ATOMICS\r
- typedef struct { pthread_mutex_t mut; int val; } atomic_t;\r
- #define atomic_inc(v) { \\r
-- int v;\r
-+ int x;\r
- pthread_mutex_lock(&(v)->mut); \\r
-- v = ++val; \\r
-+ x = ++val; \\r
- pthread_mutex_unlock(&(v)->mut); \\r
-- return v; }\r
-+ return x; }\r
- #define atomic_dec(v) { \\r
-- int v;\r
-+ int x;\r
- pthread_mutex_lock(&(v)->mut); \\r
-- v = --val; \\r
-+ x = --val; \\r
- pthread_mutex_unlock(&(v)->mut); \\r
-- return v; }\r
-+ return x; }\r
- #define atomic_init(v) { pthread_mutex_init(&(v)->mut, NULL); (v)->val = 0); }\r
- #else\r
- typedef struct { volatile int val; } atomic_t;