linux/drivers/s390
Eric Farman 15f0eb3d6a s390/cio: Update SCSW if it points to the end of the chain
Per the POPs [1], when processing an interrupt the SCSW.CPA field of an
IRB generally points to 8 bytes after the last CCW that was executed
(there are exceptions, but this is the most common behavior).

In the case of an error, this points us to the first un-executed CCW
in the chain.  But in the case of normal I/O, the address points beyond
the end of the chain.  While the guest generally only cares about this
when possibly restarting a channel program after error recovery, we
should convert the address even in the good scenario so that we provide
a consistent, valid, response upon I/O completion.

[1] Figure 16-6 in SA22-7832-11.  The footnotes in that table also state
that this is true even if the resulting address is invalid or protected,
but moving to the end of the guest chain should not be a surprise.

Signed-off-by: Eric Farman <farman@linux.ibm.com>
Message-Id: <20190514234248.36203-2-farman@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2019-06-03 12:02:55 +02:00
..
block s390/dasd: fix build warning in dasd_eckd_build_cp_raw 2019-05-09 08:10:21 -06:00
char stream_open related patches for Linux 5.2 2019-05-07 12:15:13 -07:00
cio s390/cio: Update SCSW if it points to the end of the chain 2019-06-03 12:02:55 +02:00
crypto s390/zcrypt: Fix wrong dispatching for control domain CPRBs 2019-05-28 14:49:38 +02:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
scsi scsi: zfcp: reduce flood of fcrscn1 trace records on multi-element RSCN 2019-03-27 21:26:12 -04:00
virtio virtio: fixes, features 2019-05-14 14:12:59 -07:00
Makefile kbuild: rename built-in.o to built-in.a 2018-03-26 02:01:19 +09:00