]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/diag: Convert to use flag output macros
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 7 Nov 2024 15:11:44 +0000 (16:11 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Wed, 13 Nov 2024 13:31:33 +0000 (14:31 +0100)
Use flag output macros in inline asm to allow for better code generation if
the compiler has support for the flag output constraint.

Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/kernel/diag.c

index 007e1795670e8ab0b2d73e265ef15d3c229ad233..cdd6e31344fa6b1959d5a5f916a35ea9ac6807f6 100644 (file)
@@ -16,6 +16,7 @@
 #include <asm/diag.h>
 #include <asm/trace/diag.h>
 #include <asm/sections.h>
+#include <asm/asm.h>
 #include "entry.h"
 
 struct diag_stat {
@@ -307,16 +308,15 @@ EXPORT_SYMBOL(diag26c);
 
 int diag49c(unsigned long subcode)
 {
-       int rc;
+       int cc;
 
        diag_stat_inc(DIAG_STAT_X49C);
        asm volatile(
                "       diag    %[subcode],0,0x49c\n"
-               "       ipm     %[rc]\n"
-               "       srl     %[rc],28\n"
-               : [rc] "=d" (rc)
+               CC_IPM(cc)
+               : CC_OUT(cc, cc)
                : [subcode] "d" (subcode)
-               : "cc");
-       return rc;
+               : CC_CLOBBER);
+       return CC_TRANSFORM(cc);
 }
 EXPORT_SYMBOL(diag49c);