s390/cio: Fix incorrect xsch opcode specification
authorPeter Oberparleiter <oberpar@linux.vnet.ibm.com>
Fri, 18 Dec 2015 11:59:28 +0000 (12:59 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 18 Dec 2015 13:59:34 +0000 (14:59 +0100)
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>
drivers/s390/cio/io_sch.h

index b108f4a5c7dd33aef5d20d9e5a5074a31ac8514e..789ce783d3e1b5e92b6bd7ceebfba00293c8d720 100644 (file)
@@ -205,7 +205,7 @@ static inline int xsch(struct subchannel_id schid)
        int ccode;
 
        asm volatile(
-               "       .insn   rre,0xb2760000,%1,0\n"
+               "       xsch\n"
                "       ipm     %0\n"
                "       srl     %0,28"
                : "=d" (ccode)