]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv/atomic.h: use RISCV_FULL_BARRIER in _arch_atomic* function.
authorZongmin Zhou <zhouzongmin@kylinos.cn>
Thu, 20 Nov 2025 09:58:31 +0000 (17:58 +0800)
committerPaul Walmsley <pjw@kernel.org>
Fri, 19 Dec 2025 07:22:30 +0000 (00:22 -0700)
Replace the same code with the pre-defined macro
RISCV_FULL_BARRIER to simplify the code.

Signed-off-by: Zongmin Zhou <zhouzongmin@kylinos.cn>
Link: https://patch.msgid.link/20251120095831.64211-1-min_halo@163.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
arch/riscv/include/asm/atomic.h

index 5b96c2f61adb596caf8ee6355d4ee86dbc19903b..3f33dc54f94b2e14cb4270dbd0493625fbb977bd 100644 (file)
@@ -203,7 +203,7 @@ ATOMIC_OPS(xor, xor, i)
                "       add            %[rc], %[p], %[a]\n"             \
                "       sc." sfx ".rl  %[rc], %[rc], %[c]\n"            \
                "       bnez           %[rc], 0b\n"                     \
-               "       fence          rw, rw\n"                        \
+               RISCV_FULL_BARRIER                                      \
                "1:\n"                                                  \
                : [p]"=&r" (_prev), [rc]"=&r" (_rc), [c]"+A" (counter)  \
                : [a]"r" (_a), [u]"r" (_u)                              \
@@ -242,7 +242,7 @@ static __always_inline s64 arch_atomic64_fetch_add_unless(atomic64_t *v, s64 a,
                "       addi            %[rc], %[p], 1\n"               \
                "       sc." sfx ".rl   %[rc], %[rc], %[c]\n"           \
                "       bnez            %[rc], 0b\n"                    \
-               "       fence           rw, rw\n"                       \
+               RISCV_FULL_BARRIER                                      \
                "1:\n"                                                  \
                : [p]"=&r" (_prev), [rc]"=&r" (_rc), [c]"+A" (counter)  \
                :                                                       \
@@ -268,7 +268,7 @@ static __always_inline bool arch_atomic_inc_unless_negative(atomic_t *v)
                "       addi            %[rc], %[p], -1\n"              \
                "       sc." sfx ".rl   %[rc], %[rc], %[c]\n"           \
                "       bnez            %[rc], 0b\n"                    \
-               "       fence           rw, rw\n"                       \
+               RISCV_FULL_BARRIER                                      \
                "1:\n"                                                  \
                : [p]"=&r" (_prev), [rc]"=&r" (_rc), [c]"+A" (counter)  \
                :                                                       \
@@ -294,7 +294,7 @@ static __always_inline bool arch_atomic_dec_unless_positive(atomic_t *v)
                "       bltz           %[rc], 1f\n"                     \
                "       sc." sfx ".rl  %[rc], %[rc], %[c]\n"            \
                "       bnez           %[rc], 0b\n"                     \
-               "       fence          rw, rw\n"                        \
+               RISCV_FULL_BARRIER                                      \
                "1:\n"                                                  \
                : [p]"=&r" (_prev), [rc]"=&r" (_rc), [c]"+A" (counter)  \
                :                                                       \