aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/pci/pci_clp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c
index 2c847143cbd1..702bd2693689 100644
--- a/arch/s390/pci/pci_clp.c
+++ b/arch/s390/pci/pci_clp.c
@@ -19,18 +19,19 @@
19 * Call Logical Processor 19 * Call Logical Processor
20 * Retry logic is handled by the caller. 20 * Retry logic is handled by the caller.
21 */ 21 */
22static inline u8 clp_instr(void *req) 22static inline u8 clp_instr(void *data)
23{ 23{
24 u64 ilpm; 24 struct { u8 _[CLP_BLK_SIZE]; } *req = data;
25 u64 ignored;
25 u8 cc; 26 u8 cc;
26 27
27 asm volatile ( 28 asm volatile (
28 " .insn rrf,0xb9a00000,%[ilpm],%[req],0x0,0x2\n" 29 " .insn rrf,0xb9a00000,%[ign],%[req],0x0,0x2\n"
29 " ipm %[cc]\n" 30 " ipm %[cc]\n"
30 " srl %[cc],28\n" 31 " srl %[cc],28\n"
31 : [cc] "=d" (cc), [ilpm] "=d" (ilpm) 32 : [cc] "=d" (cc), [ign] "=d" (ignored), "+m" (*req)
32 : [req] "a" (req) 33 : [req] "a" (req)
33 : "cc", "memory"); 34 : "cc");
34 return cc; 35 return cc;
35} 36}
36 37