diff --git a/include/common/memory.h b/include/common/memory.h
index 9c54422..43ab8e9 100644
--- a/include/common/memory.h
+++ b/include/common/memory.h
@@ -229,8 +229,9 @@
 		__ha_barrier_load();
 		new.free_list = *POOL_LINK(pool, cmp.free_list);
 	} while (__ha_cas_dw((void *)&pool->free_list, (void *)&cmp, (void *)&new) == 0);
+	__ha_barrier_atomic_store();
 
-	HA_ATOMIC_ADD(&pool->used, 1);
+	_HA_ATOMIC_ADD(&pool->used, 1);
 #ifdef DEBUG_MEMORY_POOLS
 	/* keep track of where the element was allocated from */
 	*POOL_LINK(pool, cmp.free_list) = (void *)pool;
@@ -288,8 +289,9 @@
 	do {
 		*POOL_LINK(pool, ptr) = (void *)free_list;
 		__ha_barrier_store();
-	} while (!HA_ATOMIC_CAS(&pool->free_list, &free_list, ptr));
-	HA_ATOMIC_SUB(&pool->used, 1);
+	} while (!_HA_ATOMIC_CAS(&pool->free_list, &free_list, ptr));
+	__ha_barrier_atomic_store();
+	_HA_ATOMIC_SUB(&pool->used, 1);
 }
 
 /* frees an object to the local cache, possibly pushing oldest objects to the
diff --git a/src/memory.c b/src/memory.c
index b200c38..ef7ec93 100644
--- a/src/memory.c
+++ b/src/memory.c
@@ -159,13 +159,13 @@
 
 	while (1) {
 		if (limit && allocated >= limit) {
-			HA_ATOMIC_ADD(&pool->allocated, allocated - allocated_orig);
+			_HA_ATOMIC_ADD(&pool->allocated, allocated - allocated_orig);
 			return NULL;
 		}
 
 		ptr = malloc(size + POOL_EXTRA);
 		if (!ptr) {
-			HA_ATOMIC_ADD(&pool->failed, 1);
+			_HA_ATOMIC_ADD(&pool->failed, 1);
 			if (failed)
 				return NULL;
 			failed++;
@@ -179,11 +179,12 @@
 		do {
 			*POOL_LINK(pool, ptr) = free_list;
 			__ha_barrier_store();
-		} while (HA_ATOMIC_CAS(&pool->free_list, &free_list, ptr) == 0);
+		} while (_HA_ATOMIC_CAS(&pool->free_list, &free_list, ptr) == 0);
 	}
+	__ha_barrier_atomic_store();
 
-	HA_ATOMIC_ADD(&pool->allocated, allocated - allocated_orig);
-	HA_ATOMIC_ADD(&pool->used, 1);
+	_HA_ATOMIC_ADD(&pool->allocated, allocated - allocated_orig);
+	_HA_ATOMIC_ADD(&pool->used, 1);
 
 #ifdef DEBUG_MEMORY_POOLS
 	/* keep track of where the element was allocated from */
@@ -210,7 +211,8 @@
 		return;
 	do {
 		next = pool->free_list;
-	} while (!HA_ATOMIC_CAS(&pool->free_list, &next, NULL));
+	} while (!_HA_ATOMIC_CAS(&pool->free_list, &next, NULL));
+	__ha_barrier_atomic_store();
 	while (next) {
 		temp = next;
 		next = *POOL_LINK(pool, temp);
@@ -218,7 +220,7 @@
 		free(temp);
 	}
 	pool->free_list = next;
-	HA_ATOMIC_SUB(&pool->allocated, removed);
+	_HA_ATOMIC_SUB(&pool->allocated, removed);
 	/* here, we should have pool->allocate == pool->used */
 }
 
@@ -235,7 +237,7 @@
 	int cur_recurse = 0;
 	struct pool_head *entry;
 
-	if (recurse || !HA_ATOMIC_CAS(&recurse, &cur_recurse, 1))
+	if (recurse || !_HA_ATOMIC_CAS(&recurse, &cur_recurse, 1))
 		return;
 
 	list_for_each_entry(entry, &pools, list) {
@@ -253,11 +255,11 @@
 			if (__ha_cas_dw(&entry->free_list, &cmp, &new) == 0)
 				continue;
 			free(cmp.free_list);
-			HA_ATOMIC_SUB(&entry->allocated, 1);
+			_HA_ATOMIC_SUB(&entry->allocated, 1);
 		}
 	}
 
-	HA_ATOMIC_STORE(&recurse, 0);
+	_HA_ATOMIC_STORE(&recurse, 0);
 }
 
 /* frees an object to the local cache, possibly pushing oldest objects to the
@@ -386,7 +388,7 @@
 	int cur_recurse = 0;
 	struct pool_head *entry;
 
-	if (recurse || !HA_ATOMIC_CAS(&recurse, &cur_recurse, 1))
+	if (recurse || !_HA_ATOMIC_CAS(&recurse, &cur_recurse, 1))
 		return;
 
 	list_for_each_entry(entry, &pools, list) {
@@ -407,7 +409,7 @@
 			HA_SPIN_UNLOCK(POOL_LOCK, &entry->lock);
 	}
 
-	HA_ATOMIC_STORE(&recurse, 0);
+	_HA_ATOMIC_STORE(&recurse, 0);
 }
 #endif
 
