[PATCH bpf-next v3 5/9] arm64: insn: Add BIT(23) to {load,store}_ex's mask

Xu Kuohai xukuohai at huaweicloud.com
Sat Feb 22 01:28:56 PST 2025


On 2/20/2025 9:21 AM, Peilin Ye wrote:
> 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
> 
> Signed-off-by: Peilin Ye <yepeilin at google.com>
> ---
>   arch/arm64/include/asm/insn.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/insn.h b/arch/arm64/include/asm/insn.h
> index e390c432f546..2d8316b3abaf 100644
> --- a/arch/arm64/include/asm/insn.h
> +++ b/arch/arm64/include/asm/insn.h
> @@ -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)


Looks good to me

Acked-by: Xu Kuohai <xukuohai at huawei.com>




More information about the linux-arm-kernel mailing list