qemu/target/s390x
Halil Pasic 66dc50f705 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>
2017-10-20 13:32:10 +02:00
..
arch_dump.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cc_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
cpu_features_def.h s390x/cpumodel: wire up new hardware features 2017-07-14 12:29:49 +02:00
cpu_features.c s390x/cpumodel: fix max STFL(E) bit number 2017-10-06 10:53:02 +02:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_models.c s390x/cpumodel: allow to enable SENSE RUNNING STATUS for qemu 2017-10-20 13:32:10 +02:00
cpu_models.h target/s390x: move some s390x typedefs to cpu-qom.h 2017-09-19 18:31:31 +02:00
cpu-qom.h target/s390x: get rid of next_core_id 2017-10-06 10:53:02 +02:00
cpu.c target/s390x: special handling when starting a CPU with WAIT PSW 2017-10-20 13:32:10 +02:00
cpu.h s390x: move s390x_new_cpu() into board code 2017-10-20 13:32:10 +02:00
crypto_helper.c s390x/tcg: add basic MSA features 2017-10-06 10:53:01 +02:00
diag.c S390: use g_new() family of functions 2017-10-20 13:32:10 +02:00
excp_helper.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
fpu_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390x/cpumodel: remove ais from z14 default model-> also for 2.10.1 2017-09-27 11:13:32 +02:00
helper.c s390x: move s390x_new_cpu() into board code 2017-10-20 13:32:10 +02:00
helper.h s390x/tcg: switch to new SIGP handling code 2017-10-20 13:32:10 +02:00
insn-data.def s390x/tcg: switch to new SIGP handling code 2017-10-20 13:32:10 +02:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
internal.h s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
interrupt.c s390x/tcg: implement STOP and RESET interrupts for TCG 2017-10-20 13:32:10 +02:00
ioinst.c s390x: improve error handling for SSCH and RSCH 2017-10-20 13:32:10 +02:00
kvm_s390x.h s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
kvm-stub.c s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
kvm.c s390x/kvm: factor out actual handling of STOP interrupts 2017-10-20 13:32:10 +02:00
machine.c migration: pre_save return int 2017-09-27 11:35:59 +01:00
Makefile.objs s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
mem_helper.c s390x/tcg: make idte/ipte use the new _real mmu 2017-10-06 10:53:02 +02:00
misc_helper.c s390x/tcg: refactor stfl(e) to use s390_get_feat_block() 2017-10-20 13:32:10 +02:00
mmu_helper.c s390x/tcg: add MMU for real addresses 2017-10-06 10:53:02 +02:00
sigp.c target/s390x: special handling when starting a CPU with WAIT PSW 2017-10-20 13:32:10 +02:00
trace-events s390x/kvm: factor out SIGP code into sigp.c 2017-10-20 13:32:10 +02:00
translate.c s390x/tcg: refactor stfl(e) to use s390_get_feat_block() 2017-10-20 13:32:10 +02:00