diff options
author | Peter Oberparleiter <oberpar@linux.vnet.ibm.com> | 2015-12-18 06:59:28 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2015-12-18 08:59:34 -0500 |
commit | ac357c4105ef6b2d44227aa349850a3c1a2994a5 (patch) | |
tree | 6f9a2c457964f50c5472a6ba1bfcbf5ec7152be2 | |
parent | 62e65da994768e0d599d78dd2cebef5716ffb0ae (diff) |
s390/cio: Fix incorrect xsch opcode specification
The numeric representation of the xsch instruction was incorrectly
specified, resulting in reserved fields of the instruction opcode
potentially being set to a non-zero value. While this doesn't currently
cause any problem, a future architecture might make use of these fields
so that the current specification could result in an exception or
unwanted side-effects.
Fix this by using the xsch instruction code for which support in
binutils was added in 2003.
Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r-- | drivers/s390/cio/io_sch.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/cio/io_sch.h b/drivers/s390/cio/io_sch.h index b108f4a5c7dd..789ce783d3e1 100644 --- a/drivers/s390/cio/io_sch.h +++ b/drivers/s390/cio/io_sch.h | |||
@@ -205,7 +205,7 @@ static inline int xsch(struct subchannel_id schid) | |||
205 | int ccode; | 205 | int ccode; |
206 | 206 | ||
207 | asm volatile( | 207 | asm volatile( |
208 | " .insn rre,0xb2760000,%1,0\n" | 208 | " xsch\n" |
209 | " ipm %0\n" | 209 | " ipm %0\n" |
210 | " srl %0,28" | 210 | " srl %0,28" |
211 | : "=d" (ccode) | 211 | : "=d" (ccode) |