aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/hypfs/hypfs_sprp.c
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2021-06-17 10:26:57 +0200
committerVasily Gorbik <gor@linux.ibm.com>2021-06-28 11:18:28 +0200
commitcf1ffce243bc5a6f173621e5fa5afca67993e2c7 (patch)
tree3bf14256f2f129a1d9bfc5df43ec77b0a263c8b9 /arch/s390/hypfs/hypfs_sprp.c
parents390/zcrypt: Switch to flexible array member (diff)
downloadlinux-dev-cf1ffce243bc5a6f173621e5fa5afca67993e2c7.tar.xz
linux-dev-cf1ffce243bc5a6f173621e5fa5afca67993e2c7.zip
s390/hypfs: use register pair instead of register asm
Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Diffstat (limited to '')
-rw-r--r--arch/s390/hypfs/hypfs_sprp.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/s390/hypfs/hypfs_sprp.c b/arch/s390/hypfs/hypfs_sprp.c
index 7d9fb496d155..f5f7e78ddc0c 100644
--- a/arch/s390/hypfs/hypfs_sprp.c
+++ b/arch/s390/hypfs/hypfs_sprp.c
@@ -25,14 +25,13 @@
static inline unsigned long __hypfs_sprp_diag304(void *data, unsigned long cmd)
{
- register unsigned long _data asm("2") = (unsigned long) data;
- register unsigned long _rc asm("3");
- register unsigned long _cmd asm("4") = cmd;
+ union register_pair r1 = { .even = (unsigned long)data, };
- asm volatile("diag %1,%2,0x304\n"
- : "=d" (_rc) : "d" (_data), "d" (_cmd) : "memory");
-
- return _rc;
+ asm volatile("diag %[r1],%[r3],0x304\n"
+ : [r1] "+&d" (r1.pair)
+ : [r3] "d" (cmd)
+ : "memory");
+ return r1.odd;
}
static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd)