summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2020-08-13 11:56:41 +0200
committerHans Kristian Rosbach <hk-github@circlestorm.org>2020-08-21 21:54:12 +0200
commit4e506d24b032b1e132df1bb102209b720c6a4fbe (patch)
tree85bef8cb0980a25078b1f24ac649f798b2d2ca36 /arch
parent6bc0dd5ae7cccae5211968c498ac44def6d88e0c (diff)
Fix building DFLTCC with clang
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/dfltcc_common.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/s390/dfltcc_common.c b/arch/s390/dfltcc_common.c
index bae40a2..b8ccfd8 100644
--- a/arch/s390/dfltcc_common.c
+++ b/arch/s390/dfltcc_common.c
@@ -22,10 +22,15 @@ static inline int is_dfltcc_enabled(void) {
* compiling with -m31, gcc defaults to ESA mode, however, since the kernel
* is 64-bit, it's always z/Architecture mode at runtime.
*/
- __asm__ volatile(".machinemode push\n"
+ __asm__ volatile(
+#ifndef __clang__
+ ".machinemode push\n"
".machinemode zarch\n"
+#endif
"stfle %[facilities]\n"
+#ifndef __clang__
".machinemode pop\n"
+#endif
: [facilities] "=Q" (facilities), [r0] "+r" (r0) :: "cc");
return is_bit_set((const char *)facilities, DFLTCC_FACILITY);
}