From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Borntraeger Subject: Re: [PATCH v2 1/2] KVM: s390: add and extend interrupt information data structs Date: Fri, 06 Sep 2013 15:20:07 +0200 Message-ID: <5229D687.5020409@de.ibm.com> References: <1378469957-62290-1-git-send-email-jfrei@linux.vnet.ibm.com> <1378469957-62290-2-git-send-email-jfrei@linux.vnet.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: Cornelia Huck , Alexander Graf , kvm@vger.kernel.org, qemu-devel@nongnu.org, Andreas Faerber , Thomas Huth To: Jens Freimann Return-path: Received: from e06smtp17.uk.ibm.com ([195.75.94.113]:52213 "EHLO e06smtp17.uk.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750709Ab3IFNUM (ORCPT ); Fri, 6 Sep 2013 09:20:12 -0400 Received: from /spool/local by e06smtp17.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 6 Sep 2013 14:14:55 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 16CB42190059 for ; Fri, 6 Sep 2013 14:20:09 +0100 (BST) Received: from d06av06.portsmouth.uk.ibm.com (d06av06.portsmouth.uk.ibm.com [9.149.37.217]) by b06cxnps4076.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r86DJv6b66650118 for ; Fri, 6 Sep 2013 13:19:57 GMT Received: from d06av06.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av06.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r86DK8p4011870 for ; Fri, 6 Sep 2013 07:20:08 -0600 In-Reply-To: <1378469957-62290-2-git-send-email-jfrei@linux.vnet.ibm.com> Sender: kvm-owner@vger.kernel.org List-ID: On 06/09/13 14:19, Jens Freimann wrote: > With the currently available struct kvm_s390_interrupt it is not possible to > inject every kind of interrupt as defined in the z/Architecture. Add > additional interruption parameters to the structures and move it to kvm.h > > Signed-off-by: Jens Freimann > Reviewed-by: Cornelia Huck Acked-by: Christian Borntraeger > --- > arch/s390/include/asm/kvm_host.h | 34 +--------------------- > include/uapi/linux/kvm.h | 63 ++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 64 insertions(+), 33 deletions(-) > > diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h > index e87ecaa..adb05c5 100644 > --- a/arch/s390/include/asm/kvm_host.h > +++ b/arch/s390/include/asm/kvm_host.h > @@ -16,6 +16,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -162,18 +163,6 @@ struct kvm_vcpu_stat { > u32 diagnose_9c; > }; > > -struct kvm_s390_io_info { > - __u16 subchannel_id; /* 0x0b8 */ > - __u16 subchannel_nr; /* 0x0ba */ > - __u32 io_int_parm; /* 0x0bc */ > - __u32 io_int_word; /* 0x0c0 */ > -}; > - > -struct kvm_s390_ext_info { > - __u32 ext_params; > - __u64 ext_params2; > -}; > - > #define PGM_OPERATION 0x01 > #define PGM_PRIVILEGED_OP 0x02 > #define PGM_EXECUTE 0x03 > @@ -182,27 +171,6 @@ struct kvm_s390_ext_info { > #define PGM_SPECIFICATION 0x06 > #define PGM_DATA 0x07 > > -struct kvm_s390_pgm_info { > - __u16 code; > -}; > - > -struct kvm_s390_prefix_info { > - __u32 address; > -}; > - > -struct kvm_s390_extcall_info { > - __u16 code; > -}; > - > -struct kvm_s390_emerg_info { > - __u16 code; > -}; > - > -struct kvm_s390_mchk_info { > - __u64 cr14; > - __u64 mcic; > -}; > - > struct kvm_s390_interrupt_info { > struct list_head list; > u64 type; > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index 99c2533..eeb08a1 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -434,6 +434,69 @@ struct kvm_s390_interrupt { > __u64 parm64; > }; > > +struct kvm_s390_io_info { > + __u16 subchannel_id; > + __u16 subchannel_nr; > + __u32 io_int_parm; > + __u32 io_int_word; > +}; > + > +struct kvm_s390_ext_info { > + __u32 ext_params; > + __u32 pad; > + __u64 ext_params2; > +}; > + > +struct kvm_s390_pgm_info { > + __u64 trans_exc_code; > + __u64 mon_code; > + __u64 per_address; > + __u32 data_exc_code; > + __u16 code; > + __u16 mon_class_nr; > + __u8 per_code; > + __u8 per_atmid; > + __u8 exc_access_id; > + __u8 per_access_id; > + __u8 op_access_id; > + __u8 pad[3]; > +}; > + > +struct kvm_s390_prefix_info { > + __u32 address; > +}; > + > +struct kvm_s390_extcall_info { > + __u16 code; > +}; > + > +struct kvm_s390_emerg_info { > + __u16 code; > +}; > + > +struct kvm_s390_mchk_info { > + __u64 cr14; > + __u64 mcic; > + __u64 failing_storage_address; > + __u32 ext_damage_code; > + __u32 pad; > + __u8 fixed_logout[16]; > +}; > + > +struct kvm_s390_irq { > + __u64 type; > + union { > + struct kvm_s390_io_info io; > + struct kvm_s390_ext_info ext; > + struct kvm_s390_pgm_info pgm; > + struct kvm_s390_emerg_info emerg; > + struct kvm_s390_extcall_info extcall; > + struct kvm_s390_prefix_info prefix; > + struct kvm_s390_mchk_info mchk; > + char reserved[64]; > + }; > +}; > + > /* for KVM_SET_GUEST_DEBUG */ > > #define KVM_GUESTDBG_ENABLE 0x00000001 >