20d143e2ca
Recent upstream Linux uses the MONITOR CALL instruction for things like BUG_ON() and WARN_ON(). We currently inject an operation exception when we hit a MONITOR CALL instruction - which is wrong, as the instruction is not glued to specific CPU features. Doing a simple WARN_ON_ONCE() currently results in a panic: [ 18.162801] illegal operation: 0001 ilc:2 [#1] SMP [ 18.162889] Modules linked in: [...] [ 18.165476] Kernel panic - not syncing: Fatal exception: panic_on_oops With a proper implementation, we now get: [ 18.242754] ------------[ cut here ]------------ [ 18.242855] WARNING: CPU: 7 PID: 1 at init/main.c:1534 [...] [ 18.242919] Modules linked in: [...] [ 18.246262] ---[ end trace a420477d71dc97b4 ]--- [ 18.259014] Freeing unused kernel memory: 4220K Reported-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: David Hildenbrand <david@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200918085122.26132-1-david@redhat.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com> |
||
---|---|---|
.. | ||
arch_dump.c | ||
cc_helper.c | ||
cpu_features_def.h | ||
cpu_features_def.h.inc | ||
cpu_features.c | ||
cpu_features.h | ||
cpu_models.c | ||
cpu_models.h | ||
cpu-param.h | ||
cpu-qom.h | ||
cpu.c | ||
cpu.h | ||
crypto_helper.c | ||
diag.c | ||
excp_helper.c | ||
fpu_helper.c | ||
gdbstub.c | ||
gen-features.c | ||
helper.c | ||
helper.h | ||
insn-data.def | ||
insn-format.def | ||
int_helper.c | ||
internal.h | ||
interrupt.c | ||
ioinst.c | ||
kvm_s390x.h | ||
kvm-stub.c | ||
kvm.c | ||
machine.c | ||
mem_helper.c | ||
meson.build | ||
misc_helper.c | ||
mmu_helper.c | ||
s390-tod.h | ||
sigp.c | ||
tcg_s390x.h | ||
tcg-stub.c | ||
trace-events | ||
trace.h | ||
translate_vx.c.inc | ||
translate.c | ||
vec_fpu_helper.c | ||
vec_helper.c | ||
vec_int_helper.c | ||
vec_string_helper.c | ||
vec.h |