diff options
author | Heiko Carstens <hca@linux.ibm.com> | 2021-06-14 22:32:21 +0200 |
---|---|---|
committer | Vasily Gorbik <gor@linux.ibm.com> | 2021-06-18 16:41:24 +0200 |
commit | 5a4e0f58e2d959e2de0f0f1ddaa169e60711d2f0 (patch) | |
tree | 9eb660e28d051a956491b253722247192060d494 | |
parent | da9057576785aaab52e706e76c0475c85b77ec14 (diff) | |
download | linux-stable-5a4e0f58e2d959e2de0f0f1ddaa169e60711d2f0.tar.gz linux-stable-5a4e0f58e2d959e2de0f0f1ddaa169e60711d2f0.tar.bz2 linux-stable-5a4e0f58e2d959e2de0f0f1ddaa169e60711d2f0.zip |
s390/ipl: 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>
-rw-r--r-- | arch/s390/kernel/ipl.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index dba04fbc37a2..9ae33977e0b7 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c @@ -162,16 +162,18 @@ static bool reipl_ccw_clear; static inline int __diag308(unsigned long subcode, void *addr) { - register unsigned long _addr asm("0") = (unsigned long) addr; - register unsigned long _rc asm("1") = 0; + union register_pair r1; + r1.even = (unsigned long) addr; + r1.odd = 0; asm volatile( - " diag %0,%2,0x308\n" + " diag %[r1],%[subcode],0x308\n" "0: nopr %%r7\n" EX_TABLE(0b,0b) - : "+d" (_addr), "+d" (_rc) - : "d" (subcode) : "cc", "memory"); - return _rc; + : [r1] "+&d" (r1.pair) + : [subcode] "d" (subcode) + : "cc", "memory"); + return r1.odd; } int diag308(unsigned long subcode, void *addr) |