aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Oberparleiter <oberpar@linux.vnet.ibm.com>2015-12-18 06:59:28 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-12-18 08:59:34 -0500
commitac357c4105ef6b2d44227aa349850a3c1a2994a5 (patch)
tree6f9a2c457964f50c5472a6ba1bfcbf5ec7152be2
parent62e65da994768e0d599d78dd2cebef5716ffb0ae (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.h2
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)