@@ -83,7 +83,7 @@ opal_read_counted_pointer(volatile opal_counted_pointer_t *volatile addr,
8383 * specific order */
8484 value -> data .counter = addr -> data .counter ;
8585 opal_atomic_rmb ();
86- opal_atomic_store_ptr_relaxed (& value -> data .item , opal_atomic_load_ptr_relaxed (& addr -> data .item ));
86+ opal_atomic_store_ptr_volatile_relaxed (& value -> data .item , opal_atomic_load_ptr_volatile_relaxed (& addr -> data .item ));
8787}
8888
8989#endif
@@ -140,7 +140,7 @@ static inline opal_list_item_t *opal_lifo_push_atomic(opal_lifo_t *lifo, opal_li
140140 opal_atomic_wmb ();
141141
142142 /* to protect against ABA issues it is sufficient to only update the counter in pop */
143- if (opal_atomic_compare_exchange_strong_ptr (& lifo -> opal_lifo_head .data .item ,
143+ if (opal_atomic_compare_exchange_strong_ptr_volatile (& lifo -> opal_lifo_head .data .item ,
144144 (intptr_t * ) & next , (intptr_t ) item )) {
145145 return next ;
146146 }
@@ -159,7 +159,7 @@ static inline opal_list_item_t *opal_lifo_pop_atomic(opal_lifo_t *lifo)
159159 opal_read_counted_pointer (& lifo -> opal_lifo_head , & old_head );
160160
161161 do {
162- item = (opal_list_item_t * ) opal_atomic_load_ptr_relaxed (& old_head .data .item );
162+ item = (opal_list_item_t * ) opal_atomic_load_ptr_volatile_relaxed (& old_head .data .item );
163163 if (item == & lifo -> opal_lifo_ghost ) {
164164 return NULL ;
165165 }
@@ -189,7 +189,7 @@ static inline opal_list_item_t *opal_lifo_push_atomic(opal_lifo_t *lifo, opal_li
189189 do {
190190 item -> opal_list_next = next ;
191191 opal_atomic_wmb ();
192- if (opal_atomic_compare_exchange_strong_ptr (& lifo -> opal_lifo_head .data .item ,
192+ if (opal_atomic_compare_exchange_strong_ptr_volatile (& lifo -> opal_lifo_head .data .item ,
193193 (intptr_t * ) & next , (intptr_t ) item )) {
194194 opal_atomic_wmb ();
195195 /* now safe to pop this item */
@@ -252,7 +252,7 @@ static inline opal_list_item_t *opal_lifo_pop_atomic(opal_lifo_t *lifo)
252252
253253 head = item ;
254254 /* try to swap out the head pointer */
255- if (opal_atomic_compare_exchange_strong_ptr (& lifo -> opal_lifo_head .data .item ,
255+ if (opal_atomic_compare_exchange_strong_ptr_volatile (& lifo -> opal_lifo_head .data .item ,
256256 (intptr_t * ) & head ,
257257 (intptr_t ) item -> opal_list_next )) {
258258 break ;
0 commit comments