s390x: improve error handling for SSCH and RSCH
commit66dc50f7057b9a0191f54e55764412202306858d
authorHalil Pasic <pasic@linux.vnet.ibm.com>
Tue, 17 Oct 2017 14:04:49 +0000 (17 16:04 +0200)
committerCornelia Huck <cohuck@redhat.com>
Fri, 20 Oct 2017 11:32:10 +0000 (20 13:32 +0200)
treeaec8322b08d631d8212b333fc6d9614d444adbad
parente443ef9f21acdc6459b3fbad04019a40ea8c4e80
s390x: improve error handling for SSCH and RSCH

Simplify the error handling of the SSCH and RSCH handler avoiding
arbitrary and cryptic error codes being used to tell how the instruction
is supposed to end.  Let the code detecting the condition tell how it's
to be handled in a less ambiguous way.  It's best to handle SSCH and RSCH
in one go as the emulation of the two shares a lot of code.

For passthrough this change isn't pure refactoring, but changes the way
kernel reported EFAULT is handled. After clarifying the kernel interface
we decided that EFAULT shall be mapped to unit exception.  Same goes for
unexpected error codes and absence of required ORB flags.

Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Message-Id: <20171017140453.51099-4-pasic@linux.vnet.ibm.com>
Tested-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
[CH: cosmetic changes]
Reviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
hw/s390x/css.c
hw/s390x/s390-ccw.c
hw/vfio/ccw.c
include/hw/s390x/css.h
include/hw/s390x/s390-ccw.h
target/s390x/ioinst.c