xemu/target-s390x
Aurelien Jarno aa752a4afc target-s390x: fix LOAD MULTIPLE instruction on page boundary
When consecutive memory locations are on page boundary a page fault
might occur when using the LOAD MULTIPLE instruction. In that case real
hardware doesn't load any register.

This is an important detail in case the base register is in the list
of registers to be loaded. If a page fault occurs this register might be
overwritten and when the instruction is later restarted the wrong
base register value is useD.

Fix this by first loading the first and last value from memory, hence
triggering all possible page faults, and then the remaining registers.

This fixes random segmentation faults seen in the guest.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-06-05 01:37:58 +02:00
..
arch_dump.c s390x: Add vector registers to ELF dump 2015-05-27 17:52:03 +02:00
cc_helper.c target-s390x: fix CC computation for LOAD POSITIVE instructions 2015-06-05 01:37:57 +02:00
cpu-qom.h s390x/kvm: migrate vcpu interrupt state 2015-05-08 10:36:19 +02:00
cpu.c s390x/kvm: migrate vcpu interrupt state 2015-05-08 10:36:19 +02:00
cpu.h target-s390x: add a tod2time function 2015-06-05 01:37:57 +02:00
fpu_helper.c softmmu: introduce cpu_ldst.h 2014-06-05 16:10:33 +02:00
gdbstub.c s390x: gdb updates for vector registers 2015-05-27 17:52:03 +02:00
helper.c s390x: Common access to floating point registers 2015-05-27 17:52:03 +02:00
helper.h target-s390x: remove unused helpers 2015-06-05 01:37:57 +02:00
insn-data.def s390x: Add interlocked access facility 1 instructions 2015-05-13 14:48:54 +02:00
insn-format.def target-s390: Add format based disassassmbly infrastructure 2013-01-05 12:00:27 -08:00
int_helper.c target-s390x: remove unused helpers 2015-06-05 01:37:57 +02:00
interrupt.c s390x: Fix sclp console input 2014-11-05 12:01:28 +01:00
ioinst.c s390x/kvm: Support access register mode for KVM_S390_MEM_OP ioctl 2015-04-30 13:21:42 +02:00
ioinst.h s390x/ioinst: Rework memory access in TPI instruction 2015-02-18 09:37:15 +01:00
kvm.c kvm: introduce kvm_arch_msi_data_to_gsi 2015-06-02 14:56:25 +01:00
machine.c s390x: Migrate vector registers 2015-05-27 17:52:03 +02:00
Makefile.objs s390x/mmu: Move mmu_translate() and friends to separate file 2015-02-18 09:36:38 +01:00
mem_helper.c s390x/mmu: Skip exceptions properly when translating addresses for debug 2015-02-18 09:37:14 +01:00
misc_helper.c target-s390x: implement STPT helper 2015-06-05 01:37:57 +02:00
mmu_helper.c trivial patches for 2015-04-30 2015-04-30 15:18:30 +01:00
translate.c target-s390x: fix LOAD MULTIPLE instruction on page boundary 2015-06-05 01:37:58 +02:00