]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: insn: Add BIT(23) to {load,store}_ex's mask
authorPeilin Ye <yepeilin@google.com>
Tue, 4 Mar 2025 01:06:19 +0000 (01:06 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 15 Mar 2025 18:48:29 +0000 (11:48 -0700)
We are planning to add load-acquire (LDAR{,B,H}) and store-release
(STLR{,B,H}) instructions to insn.{c,h}; add BIT(23) to mask of load_ex
and store_ex to prevent aarch64_insn_is_{load,store}_ex() from returning
false-positives for load-acquire and store-release instructions.

Reference: Arm Architecture Reference Manual (ARM DDI 0487K.a,
           ID032224),

  * C6.2.228 LDXR
  * C6.2.165 LDAXR
  * C6.2.161 LDAR
  * C6.2.393 STXR
  * C6.2.360 STLXR
  * C6.2.353 STLR

Acked-by: Xu Kuohai <xukuohai@huawei.com>
Signed-off-by: Peilin Ye <yepeilin@google.com>
Link: https://lore.kernel.org/r/5a4d2a52b2cc022bf86d0b572789f0b3bc3d5162.1741049567.git.yepeilin@google.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
arch/arm64/include/asm/insn.h

index e390c432f546e536d5a7c2b3d045a2bbadd04991..2d8316b3abafb9fbc983503cfa33e558d3e60b72 100644 (file)
@@ -351,8 +351,8 @@ __AARCH64_INSN_FUNCS(ldr_imm,       0x3FC00000, 0x39400000)
 __AARCH64_INSN_FUNCS(ldr_lit,  0xBF000000, 0x18000000)
 __AARCH64_INSN_FUNCS(ldrsw_lit,        0xFF000000, 0x98000000)
 __AARCH64_INSN_FUNCS(exclusive,        0x3F800000, 0x08000000)
-__AARCH64_INSN_FUNCS(load_ex,  0x3F400000, 0x08400000)
-__AARCH64_INSN_FUNCS(store_ex, 0x3F400000, 0x08000000)
+__AARCH64_INSN_FUNCS(load_ex,  0x3FC00000, 0x08400000)
+__AARCH64_INSN_FUNCS(store_ex, 0x3FC00000, 0x08000000)
 __AARCH64_INSN_FUNCS(mops,     0x3B200C00, 0x19000400)
 __AARCH64_INSN_FUNCS(stp,      0x7FC00000, 0x29000000)
 __AARCH64_INSN_FUNCS(ldp,      0x7FC00000, 0x29400000)