Add a program interrupt handler and two simple program interrupt tests. The check for the ADRESSING exception will fail on - TCG without "target/s390x: addressing exceptions are suppressing" - Old KVM versions without 492d8642eaef ("KVM: s390: Forward PSW to next instruction for addressing exceptions") v1 -> v2: (s390x: generate asm offsets for the lowcore) - Added missing field (mcck extended save area) - Dropped alignment attribute for naturally aligned struct v1 -> v2: (pgm interrupt handler and a way to test them) - Renamed everything from irq->int/interrupt to keep it consistent - Use global lowcore variable struct lowcore *lc; - Safe+restore fpr and fpc in interrupt handler - Setup pgm int handler using mvc instruction - Renamed received_pgm_irq to check_pgm_int_code() and moved "report" into "check_pgm_int_code()" - Minor style + comment fixes David Hildenbrand (2): s390x: generate asm offsets for the lowcore s390x: pgm interrupt handler and a way to test them lib/s390x/asm-offsets.c | 74 ++++++++++++++++++++++ lib/s390x/asm/arch_def.h | 146 ++++++++++++++++++++++++++++++++++++++++++++ lib/s390x/asm/asm-offsets.h | 10 +++ lib/s390x/asm/interrupt.h | 18 ++++++ lib/s390x/interrupt.c | 82 +++++++++++++++++++++++++ s390x/Makefile | 10 ++- s390x/cstart64.S | 55 +++++++++++++++++ s390x/selftest.c | 13 ++++ 8 files changed, 407 insertions(+), 1 deletion(-) create mode 100644 lib/s390x/asm-offsets.c create mode 100644 lib/s390x/asm/arch_def.h create mode 100644 lib/s390x/asm/asm-offsets.h create mode 100644 lib/s390x/asm/interrupt.h create mode 100644 lib/s390x/interrupt.c -- 2.9.3