]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/extmem: Convert to use flag output macros
authorHeiko Carstens <hca@linux.ibm.com>
Thu, 7 Nov 2024 15:11:46 +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/mm/extmem.c

index 282fefe107a246e0716892f1166706870a47a275..4692136c0af137290b05e1fdbfa866ca1b877575 100644 (file)
@@ -28,6 +28,7 @@
 #include <asm/extmem.h>
 #include <asm/cpcmd.h>
 #include <asm/setup.h>
+#include <asm/asm.h>
 
 #define DCSS_PURGESEG   0x08
 #define DCSS_LOADSHRX  0x20
@@ -134,20 +135,21 @@ dcss_diag(int *func, void *parameter,
            unsigned long *ret1, unsigned long *ret2)
 {
        unsigned long rx, ry;
-       int rc;
+       int cc;
 
        rx = virt_to_phys(parameter);
        ry = (unsigned long) *func;
 
        diag_stat_inc(DIAG_STAT_X064);
        asm volatile(
-               "       diag    %0,%1,0x64\n"
-               "       ipm     %2\n"
-               "       srl     %2,28\n"
-               : "+d" (rx), "+d" (ry), "=d" (rc) : : "cc");
+               "       diag    %[rx],%[ry],0x64\n"
+               CC_IPM(cc)
+               : CC_OUT(cc, cc), [rx] "+d" (rx), [ry] "+d" (ry)
+               :
+               : CC_CLOBBER);
        *ret1 = rx;
        *ret2 = ry;
-       return rc;
+       return CC_TRANSFORM(cc);
 }
 
 static inline int