We have various places where we inject suppressing PGM exceptions, but don't forward the PSW. Let's fix that by detecting whether to forward the PSW using the interception code.
We can now get rid of ILEN_LATER/ILEN_LATER_INC and replace it by ILEN_AUTO, to automatically detect the instruction length using the current PSW. ILEN_AUTO is also used with program_interrupt(), so let's add it at the right place. To correctly identify nullifying PER events (and also that the guest can identify them), we have to set the PER flag PER_CODE_EVENT_NULLIFICATION accordingly. This e.g. fixes TB (TEST BLOCK) program interrupts in Thomas' interception handler kvm-unit-test. David Hildenbrand (2): target/s390x: correctly indicate PER nullification target/s390x: rework PGM interrupt psw.addr handling target/s390x/cpu.h | 7 ++----- target/s390x/helper.c | 46 +++++++++++++++++++++++++++++++++++----------- target/s390x/misc_helper.c | 22 +++++++++------------- target/s390x/mmu_helper.c | 6 +++--- target/s390x/translate.c | 3 +-- 5 files changed, 50 insertions(+), 34 deletions(-) -- 2.9.3