From: Martin Schwidefsky Date: Sat, 9 Feb 2008 17:24:29 +0000 (+0100) Subject: [S390] Fix __ffs_word_loop/__ffz_word_loop inlnie assembly. X-Git-Tag: v2.6.25-rc1~16^2~8 X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=6d88f827d7c3e73d11a62fdabccca001aece7295;p=linux-2.6-omap-h63xx.git [S390] Fix __ffs_word_loop/__ffz_word_loop inlnie assembly. The black art of inline assemblies.. The new __ffs_word_loop/ __ffz_word_loop inline assemblies need an early clobber for the two input/output variables. Signed-off-by: Martin Schwidefsky --- diff --git a/include/asm-s390/bitops.h b/include/asm-s390/bitops.h index 882db054110..ab83c844d04 100644 --- a/include/asm-s390/bitops.h +++ b/include/asm-s390/bitops.h @@ -472,7 +472,7 @@ static inline unsigned long __ffz_word_loop(const unsigned long *addr, " brct %1,0b\n" "1:\n" #endif - : "+a" (bytes), "+d" (size) + : "+&a" (bytes), "+&d" (size) : "d" (-1UL), "a" (addr), "m" (*(addrtype *) addr) : "cc" ); return bytes; @@ -507,7 +507,7 @@ static inline unsigned long __ffs_word_loop(const unsigned long *addr, " brct %1,0b\n" "1:\n" #endif - : "+a" (bytes), "+a" (size) + : "+&a" (bytes), "+&a" (size) : "d" (0UL), "a" (addr), "m" (*(addrtype *) addr) : "cc" ); return bytes;