diff options
Diffstat (limited to 'scripts/atomic/fallbacks/set_release')
-rwxr-xr-x | scripts/atomic/fallbacks/set_release | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/scripts/atomic/fallbacks/set_release b/scripts/atomic/fallbacks/set_release index 45bb5e0cfc08..16a374ae6bb1 100755 --- a/scripts/atomic/fallbacks/set_release +++ b/scripts/atomic/fallbacks/set_release @@ -1,7 +1,8 @@ cat <<EOF -static inline void -${atomic}_set_release(${atomic}_t *v, ${int} i) -{ - smp_store_release(&(v)->counter, i); -} + if (__native_word(${atomic}_t)) { + smp_store_release(&(v)->counter, i); + } else { + __atomic_release_fence(); + raw_${atomic}_set(v, i); + } EOF |