diff options
| author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-05-28 02:40:01 +0300 |
|---|---|---|
| committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2022-05-28 02:40:01 +0300 |
| commit | 690e179059e7e89040d1cd564e39761567a8d5dc (patch) | |
| tree | b6a64fc5ca4fd862e17559c46676258ae17c87d5 /scripts/atomic | |
| parent | 5f76955ab1e43e5795a9631b22ca4f918a0ae986 (diff) | |
| parent | 4b0986a3613c92f4ec1bdc7f60ec66fea135991f (diff) | |
| download | linux-690e179059e7e89040d1cd564e39761567a8d5dc.tar.xz | |
Merge tag 'v5.18' into next
Sync up with mainline to get updates to OMAP4 keypad driver and other
upstream goodies.
Diffstat (limited to 'scripts/atomic')
| -rwxr-xr-x | scripts/atomic/fallbacks/read_acquire | 11 | ||||
| -rwxr-xr-x | scripts/atomic/fallbacks/set_release | 7 |
2 files changed, 16 insertions, 2 deletions
diff --git a/scripts/atomic/fallbacks/read_acquire b/scripts/atomic/fallbacks/read_acquire index 803ba7561076..a0ea1d26e6b2 100755 --- a/scripts/atomic/fallbacks/read_acquire +++ b/scripts/atomic/fallbacks/read_acquire @@ -2,6 +2,15 @@ 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 = arch_${atomic}_read(v); + __atomic_acquire_fence(); + } + + return ret; } EOF diff --git a/scripts/atomic/fallbacks/set_release b/scripts/atomic/fallbacks/set_release index 86ede759f24e..05cdb7f42477 100755 --- a/scripts/atomic/fallbacks/set_release +++ b/scripts/atomic/fallbacks/set_release @@ -2,6 +2,11 @@ cat <<EOF static __always_inline void arch_${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(); + arch_${atomic}_set(v, i); + } } EOF |
