qemu/target/s390x
Halil Pasic 7e01376dae s390x/css: fix ilen in IO instruction handlers
When initiating a program check interruption by calling program_interrupt
the instruction length (ilen) of the current instruction is supplied as
the third parameter.

On s390x all the IO instructions are of instruction format S and their
ilen is 4.  The calls to program_interrupt (introduced by commits
7b18aad543 ("s390: Add channel I/O instructions.", 2013-01-24) and
61bf0dcb2e ("s390x/ioinst: Add missing alignment checks for IO
instructions", 2013-06-21)) however use ilen == 2.

This is probably due to a confusion between ilen which specifies the
instruction length in bytes and ILC which does the same but in halfwords.
If kvm_enabled() this does not actually matter, because the ilen
parameter of program_interrupt is effectively unused.

Let's provide the correct ilen to program_interrupt.

Signed-off-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Fixes:  7b18aad543 ("s390: Add channel I/O instructions.")
Fixes: 61bf0dcb2e ("s390x/ioinst: Add missing alignment checks for IO instructions")
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170724143452.55534-1-pasic@linux.vnet.ibm.com>
Reviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2017-07-25 09:17:42 +02:00
..
Makefile.objs target/s390x: Add remaining switches to compile with --disable-tcg 2017-07-25 09:17:42 +02:00
arch_dump.c s390x/arch_dump: also dump guarded storage control block 2017-07-14 12:29:49 +02:00
cc_helper.c
cpu-qom.h
cpu.c target/s390x: Add remaining switches to compile with --disable-tcg 2017-07-25 09:17:42 +02:00
cpu.h target/s390x: Move exception-related functions to a new excp_helper.c file 2017-07-25 09:17:42 +02:00
cpu_features.c target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features.h target/s390x: introduce (test|set)_be_bit 2017-07-25 09:17:42 +02:00
cpu_features_def.h s390x/cpumodel: wire up new hardware features 2017-07-14 12:29:49 +02:00
cpu_models.c target/s390x: improve baselining if certain base features are missing 2017-07-25 09:17:42 +02:00
cpu_models.h s390x/cpumodel: provide compat handling for new cpu features 2017-07-14 12:29:47 +02:00
diag.c target/s390x: Move diag helpers to a separate file 2017-07-25 09:17:42 +02:00
excp_helper.c target/s390x: Move exception-related functions to a new excp_helper.c file 2017-07-25 09:17:42 +02:00
fpu_helper.c target/s390x: implement COMPARE AND SIGNAL 2017-06-06 15:20:38 -07:00
gdbstub.c s390x/gdb: add gs registers 2017-07-14 12:29:49 +02:00
gen-features.c s390/cpumodel: remove KSS from the default model of z14 2017-07-25 09:17:42 +02:00
helper.c target/s390x: Move exception-related functions to a new excp_helper.c file 2017-07-25 09:17:42 +02:00
helper.h target/s390x: Implement TRTR 2017-07-17 14:13:17 -07:00
insn-data.def target/s390x: Implement TRTR 2017-07-17 14:13:17 -07:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c
interrupt.c target/s390x: Rework program_interrupt() and related functions 2017-07-25 09:17:42 +02:00
ioinst.c s390x/css: fix ilen in IO instruction handlers 2017-07-25 09:17:42 +02:00
kvm.c target/s390x: Rework program_interrupt() and related functions 2017-07-25 09:17:42 +02:00
machine.c s390x/kvm: enable guarded storage 2017-07-14 12:29:49 +02:00
mem_helper.c target/s390x: Implement TRTR 2017-07-17 14:13:17 -07:00
misc_helper.c target/s390x: Rework program_interrupt() and related functions 2017-07-25 09:17:42 +02:00
mmu_helper.c target/s390x: rework PGM interrupt psw.addr handling 2017-06-13 11:09:39 -07:00
trace-events
translate.c target/s390x: Move s390_cpu_dump_state() to helper.c 2017-07-25 09:17:42 +02:00