qemu/target/s390x
David Hildenbrand 677ff32db1 s390x/cpumodel: fix segmentation fault when baselining models
Usually, when baselining two CPU models, whereby one of them has base
CPU features disabled (e.g. z14-base,msa=off), we fallback to an older
model that did not have these features in the base model. We always try to
create a "sane" CPU model (as far as possible), and one part of it is that
removing base features is no good and to be avoided.

Now, if we disable base features that were part of a z900, we're out of
luck. We won't find a CPU model and QEMU will segfault. This is a
scenario that should never happen in real life, but it can be used to
crash QEMU.

So let's properly report an error if we baseline e.g.:

{ "execute": "query-cpu-model-baseline",
  "arguments" : { "modela": { "name": "z14-base", "props": {"esan3" : false}},
                  "modelb": { "name": "z14"}} }

Instead of segfaulting.

Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20180718092330.19465-1-david@redhat.com>
Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2018-07-18 14:20:02 +02:00
..
arch_dump.c compiler: add a sizeof_field() macro 2018-06-27 13:01:40 +01:00
cc_helper.c s390x/tcg: use s390_program_interrupt() in SACF 2017-12-14 17:56:54 +01:00
cpu_features_def.h s390x/cpumodel: model PTFF subfunctions for Multiple-epoch facility 2018-02-09 09:37:13 +01:00
cpu_features.c s390x/cpumodel: document S390FeatDef.bit not applicable 2018-02-26 12:55:26 +01:00
cpu_features.h s390x/cpumodel: fix feature groups and breakage of MSA8 2018-03-23 09:05:42 +00:00
cpu_models.c s390x/cpumodel: fix segmentation fault when baselining models 2018-07-18 14:20:02 +02:00
cpu_models.h s390x: change the QEMU cpu model to a stripped down z12 2017-12-14 17:56:54 +01:00
cpu-qom.h target/s390x: change CPU type name to "s390x-cpu" 2017-10-30 08:56:28 +01:00
cpu.c s390x/tcg: fix CPU hotplug with single-threaded TCG 2018-07-02 10:37:38 +02:00
cpu.h s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
crypto_helper.c s390x/tcg: introduce and use s390_program_interrupt() 2017-12-14 17:56:54 +01:00
diag.c * Linux header upgrade (Peter) 2018-06-01 18:24:16 +01:00
excp_helper.c Make address_space_access_valid() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
fpu_helper.c target/s390x: Remove floatX_maybe_silence_nan from conversions 2018-05-17 15:27:15 -07:00
gdbstub.c target/s390x: introduce internal.h 2017-08-30 18:23:25 +02:00
gen-features.c s390x/cpumodel: default enable bpb and ppa15 for z196 and later 2018-07-02 10:37:38 +02:00
helper.c target: Do not include "exec/exec-all.h" if it is not necessary 2018-06-01 14:15:10 +02:00
helper.h s390x/tcg: implement SET CLOCK 2018-07-02 10:37:38 +02:00
insn-data.def s390x/tcg: implement SET CLOCK 2018-07-02 10:37:38 +02:00
insn-format.def target/s390x: Implement load-on-condition-2 insns 2017-06-23 09:17:44 -07:00
int_helper.c s390x/tcg: get rid of runtime_exception() 2017-12-14 17:56:54 +01:00
internal.h s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
interrupt.c s390x/flic: cache the common flic class in a central function 2018-02-09 09:37:13 +01:00
ioinst.c s390x: handle exceptions during s390_cpu_virt_mem_rw() correctly (TCG) 2017-12-14 17:56:54 +01:00
kvm_s390x.h s390x/tod: factor out TOD into separate device 2018-07-02 10:37:38 +02:00
kvm-stub.c s390x/kvm: pass values instead of pointers to kvm_s390_set_clock_*() 2018-07-02 10:37:38 +02:00
kvm.c s390x/kvm: indicate alignment in legacy_s390_alloc() 2018-07-02 10:37:38 +02:00
machine.c s390x/tcg: rearm the CKC timer during migration 2018-07-02 10:37:38 +02:00
Makefile.objs s390x/tcg: rearm the CKC timer during migration 2018-07-02 10:37:38 +02:00
mem_helper.c target: Do not include "exec/address-spaces.h" if it is not necessary 2018-05-31 19:12:13 +02:00
misc_helper.c s390x/tcg: fix locking problem with tcg_s390_tod_updated 2018-07-02 10:37:38 +02:00
mmu_helper.c Make address_space_access_valid() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
sigp.c Make address_space_access_valid() take a MemTxAttrs argument 2018-05-31 16:32:35 +01:00
tcg_s390x.h s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
tcg-stub.c s390x/tcg: rearm the CKC timer during migration 2018-07-02 10:37:38 +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: implement SET CLOCK 2018-07-02 10:37:38 +02:00