On Fri, Feb 27, 2026 at 03:17:01PM +0000, Yeoreum Yun wrote:
> -#define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg)              
> \
> -do {                                                                 \
> +#define LLSC_FUTEX_ATOMIC_OP(op, insn)                                       
> \
> +static __always_inline int                                           \
> +__llsc_futex_atomic_##op(int oparg, u32 __user *uaddr, int *oval)    \
> +{                                                                    \
>       unsigned int loops = FUTEX_MAX_LOOPS;                           \
> +     int ret, oldval, newval;                                        \
>                                                                       \
>       uaccess_enable_privileged();                                    \
> -     asm volatile(                                                   \
> +     asm volatile("// __llsc_futex_atomic_" #op "\n"                 \
>  "    prfm    pstl1strm, %2\n"                                        \
> -"1:  ldxr    %w1, %2\n"                                              \
> +"1:  ldxr    %w[oldval], %2\n"                                       \
>       insn "\n"                                                       \
> -"2:  stlxr   %w0, %w3, %2\n"                                         \
> +"2:  stlxr   %w0, %w[newval], %2\n"                                  \

Looking again at this as I originally reviewed the series without the
positional operands.

Can you not use only named operands instead of mixing them? The same
comment for all other asm changes in this file.

-- 
Catalin

Reply via email to