aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/io_sch.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/io_sch.h')
-rw-r--r--drivers/s390/cio/io_sch.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/drivers/s390/cio/io_sch.h b/drivers/s390/cio/io_sch.h
index 3f8f1cf69c76..c4f3e7c9a854 100644
--- a/drivers/s390/cio/io_sch.h
+++ b/drivers/s390/cio/io_sch.h
@@ -123,7 +123,7 @@ struct ccw_device_private {
123 void *cmb_wait; /* deferred cmb enable/disable */ 123 void *cmb_wait; /* deferred cmb enable/disable */
124}; 124};
125 125
126static inline int ssch(struct subchannel_id schid, volatile union orb *addr) 126static inline int ssch(struct subchannel_id schid, union orb *addr)
127{ 127{
128 register struct subchannel_id reg1 asm("1") = schid; 128 register struct subchannel_id reg1 asm("1") = schid;
129 int ccode = -EIO; 129 int ccode = -EIO;
@@ -134,7 +134,9 @@ static inline int ssch(struct subchannel_id schid, volatile union orb *addr)
134 " srl %0,28\n" 134 " srl %0,28\n"
135 "1:\n" 135 "1:\n"
136 EX_TABLE(0b, 1b) 136 EX_TABLE(0b, 1b)
137 : "+d" (ccode) : "d" (reg1), "a" (addr), "m" (*addr) : "cc"); 137 : "+d" (ccode)
138 : "d" (reg1), "a" (addr), "m" (*addr)
139 : "cc", "memory");
138 return ccode; 140 return ccode;
139} 141}
140 142
@@ -147,7 +149,9 @@ static inline int rsch(struct subchannel_id schid)
147 " rsch\n" 149 " rsch\n"
148 " ipm %0\n" 150 " ipm %0\n"
149 " srl %0,28" 151 " srl %0,28"
150 : "=d" (ccode) : "d" (reg1) : "cc"); 152 : "=d" (ccode)
153 : "d" (reg1)
154 : "cc", "memory");
151 return ccode; 155 return ccode;
152} 156}
153 157
@@ -160,7 +164,9 @@ static inline int csch(struct subchannel_id schid)
160 " csch\n" 164 " csch\n"
161 " ipm %0\n" 165 " ipm %0\n"
162 " srl %0,28" 166 " srl %0,28"
163 : "=d" (ccode) : "d" (reg1) : "cc"); 167 : "=d" (ccode)
168 : "d" (reg1)
169 : "cc");
164 return ccode; 170 return ccode;
165} 171}
166 172
@@ -173,7 +179,9 @@ static inline int hsch(struct subchannel_id schid)
173 " hsch\n" 179 " hsch\n"
174 " ipm %0\n" 180 " ipm %0\n"
175 " srl %0,28" 181 " srl %0,28"
176 : "=d" (ccode) : "d" (reg1) : "cc"); 182 : "=d" (ccode)
183 : "d" (reg1)
184 : "cc");
177 return ccode; 185 return ccode;
178} 186}
179 187
@@ -186,7 +194,9 @@ static inline int xsch(struct subchannel_id schid)
186 " .insn rre,0xb2760000,%1,0\n" 194 " .insn rre,0xb2760000,%1,0\n"
187 " ipm %0\n" 195 " ipm %0\n"
188 " srl %0,28" 196 " srl %0,28"
189 : "=d" (ccode) : "d" (reg1) : "cc"); 197 : "=d" (ccode)
198 : "d" (reg1)
199 : "cc");
190 return ccode; 200 return ccode;
191} 201}
192 202