On Thu, 15 Oct 2026 12:48:20 +0200 Gautam Gala <[email protected]> wrote:
> ESSA emulation in migration mode silently dropped addressing exceptions > when the guest page-table walk failed, so the guest never received the > expected PGM_ADDRESSING interrupt during live migration. > > Patch 1 fixes dat_perform_essa() to return PGM_ADDRESSING on a walk > failure, and __do_essa() to inject the program interrupt when it sees > that return value. > > Patch 2 adds a regression test integrated into the existing cmma_test > selftest. Whole series: Reviewed-by: Claudio Imbrenda <[email protected]> > > Changes since v1: > - dat_perform_essa() now returns +PGM_ADDRESSING instead of > -PGM_ADDRESSING; kvm_s390_inject_program_int() takes an unsigned u16 > so passing -5 would have wrapped to 0xFFFB and injected a bogus PIC. > __do_essa() comparison and inject call updated accordingly. The > kernel-doc return-value entry is corrected to %PGM_ADDRESSING. > - Selftest: pgm_handler_c() now reads the actual PIC from lowcore > (__LC_PGM_INT_CODE) instead of hard-coding PGM_ADDRESSING, so the > test would have caught the sign error above had it been in v1. > - Selftest: virt_map(vm, 0, 0, 1) added so the DAT-on guest can > access the lowcore to read the PIC. > - Selftest: PGM_ADDRESSING, __LC_PGM_INT_CODE and __LC_PGM_NEW_PSW > constants moved to the shared s390/processor.h header. > - Selftest: SIGALRM/alarm() timeout wrapper removed. > > Gautam Gala (2): > KVM: s390: fix ESSA addressing exception injection in migration mode > KVM: s390: selftests: add ESSA migration mode PGM_ADDRESSING > regression test > > arch/s390/kvm/gmap/dat.c | 5 +- > arch/s390/kvm/s390/priv.c | 2 + > .../selftests/kvm/include/s390/processor.h | 7 ++ > tools/testing/selftests/kvm/s390/cmma_test.c | 69 +++++++++++++++++++ > 4 files changed, 82 insertions(+), 1 deletion(-) >

