aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2019-04-08 23:26:22 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2019-04-11 13:36:52 +0200
commit0a113efc3b48e9a8952e3c6e19dfdcc48b62226f (patch)
tree5e58fb6ee6ef023e73a2cdca808cd0ba910254b7
parents390: syscall_wrapper: avoid clang warning (diff)
downloadlinux-dev-0a113efc3b48e9a8952e3c6e19dfdcc48b62226f.tar.xz
linux-dev-0a113efc3b48e9a8952e3c6e19dfdcc48b62226f.zip
s390: make __load_psw_mask work with clang
clang fails to use the %O and %R inline assembly modifiers the same way as gcc, leading to build failures with every use of __load_psw_mask(): /tmp/nmi-4a9f80.s: Assembler messages: /tmp/nmi-4a9f80.s:571: Error: junk at end of line: `+8(160(%r11))' /tmp/nmi-4a9f80.s:626: Error: junk at end of line: `+8(160(%r11))' Replace these with a more conventional way of passing the addresses that should work with both clang and gcc. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/include/asm/processor.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 0ee022247580..8aa85e39f50b 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -339,10 +339,10 @@ static __no_kasan_or_inline void __load_psw_mask(unsigned long mask)
asm volatile(
" larl %0,1f\n"
- " stg %0,%O1+8(%R1)\n"
- " lpswe %1\n"
+ " stg %0,%1\n"
+ " lpswe %2\n"
"1:"
- : "=&d" (addr), "=Q" (psw) : "Q" (psw) : "memory", "cc");
+ : "=&d" (addr), "=Q" (psw.addr) : "Q" (psw) : "memory", "cc");
}
/*