On Tue, Jul 06, 2021 at 12:18:05PM +0800, Huacai Chen wrote: > + __asm__ __volatile__( > + "1: ll.w %1, %2 # atomic_sub_if_positive\n" > + " addi.w %0, %1, %3 \n" > + " or %1, %0, $zero \n" > + " blt %0, $zero, 1f \n" > + " sc.w %1, %2 \n" > + " beq $zero, %1, 1b \n" > + "1: \n" Can you please make that 2: for everyone's sanity? (idem for all the other sites you done this). > + : "=&r" (result), "=&r" (temp), > + "+" GCC_OFF_SMALL_ASM() (v->counter) > + : "I" (-i));