This small update to the previous fix to __delay removes a conditional around the ABI-dependent subtraction operation within an inline asm in favor to the standard <asm/asm.h> LONG_SUBU macro. No change in code produced. Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> --- Here again checkpatch.pl complains, but I fail to see the point. linux-mips-delay-str.patch Index: linux-20140329-4maxp64/arch/mips/lib/delay.c =================================================================== --- linux-20140329-4maxp64.orig/arch/mips/lib/delay.c +++ linux-20140329-4maxp64/arch/mips/lib/delay.c @@ -11,7 +11,9 @@ #include <linux/module.h> #include <linux/param.h> #include <linux/smp.h> +#include <linux/stringify.h> +#include <asm/asm.h> #include <asm/compiler.h> #include <asm/war.h> @@ -27,11 +29,7 @@ void __delay(unsigned long loops) " .set noreorder \n" " .align 3 \n" "1: bnez %0, 1b \n" -#if BITS_PER_LONG == 32 - " subu %0, %1 \n" -#else - " dsubu %0, %1 \n" -#endif + " " __stringify(LONG_SUBU) " %0, %1 \n" " .set reorder \n" : "=r" (loops) : GCC_DADDI_IMM_ASM() (1), "0" (loops));