diff options
Diffstat (limited to 'drivers/s390/cio/io_sch.h')
-rw-r--r-- | drivers/s390/cio/io_sch.h | 22 |
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 | ||
126 | static inline int ssch(struct subchannel_id schid, volatile union orb *addr) | 126 | static 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 | ||