From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Hildenbrand Subject: [kvm-unit-tests PATCH v2 0/2] s390x: program interrupt handler Date: Wed, 31 May 2017 14:39:23 +0200 Message-ID: <20170531123925.4547-1-david@redhat.com> Cc: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Thomas Huth , david@redhat.com, Christian Borntraeger To: kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:57180 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751022AbdEaMjb (ORCPT ); Wed, 31 May 2017 08:39:31 -0400 Sender: kvm-owner@vger.kernel.org List-ID: 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