diff options
Diffstat (limited to 'scripts/atomic/fallbacks/read_acquire')
-rwxr-xr-x | scripts/atomic/fallbacks/read_acquire | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/scripts/atomic/fallbacks/read_acquire b/scripts/atomic/fallbacks/read_acquire index 341a88dccaa7..e319862d2f1a 100755 --- a/scripts/atomic/fallbacks/read_acquire +++ b/scripts/atomic/fallbacks/read_acquire @@ -1,7 +1,12 @@ cat <<EOF -static __always_inline ${ret} -${arch}${atomic}_read_acquire(const ${atomic}_t *v) -{ - return smp_load_acquire(&(v)->counter); -} + ${int} ret; + + if (__native_word(${atomic}_t)) { + ret = smp_load_acquire(&(v)->counter); + } else { + ret = raw_${atomic}_read(v); + __atomic_acquire_fence(); + } + + return ret; EOF |