From: Christian Borntraeger <borntraeger@de.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: KVM <kvm@vger.kernel.org>,
Christian Borntraeger <borntraeger@de.ibm.com>,
linux-s390 <linux-s390@vger.kernel.org>,
Janosch Frank <frankja@linux.vnet.ibm.com>,
David Hildenbrand <david@redhat.com>,
Michael Mueller <mimu@linux.vnet.ibm.com>
Subject: [PATCH v3 07/12] KVM: s390: abstract adapter interruption word generation from ISC
Date: Thu, 25 Jan 2018 18:06:07 +0100 [thread overview]
Message-ID: <20180125170608.38276-4-borntraeger@de.ibm.com> (raw)
In-Reply-To: <20180125170608.38276-1-borntraeger@de.ibm.com>
From: Michael Mueller <mimu@linux.vnet.ibm.com>
The function isc_to_int_word() allows the generation of interruption
words for adapter interrupts.
Signed-off-by: Michael Mueller <mimu@linux.vnet.ibm.com>
Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
arch/s390/kvm/interrupt.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 1391199..16075af 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -198,6 +198,11 @@ static uint64_t isc_to_isc_bits(int isc)
return (0x80 >> isc) << 24;
}
+static inline u32 isc_to_int_word(u8 isc)
+{
+ return ((u32)isc << 27) | 0x80000000;
+}
+
static inline u8 int_word_to_isc(u32 int_word)
{
return (int_word & 0x38000000) >> 27;
@@ -997,7 +1002,7 @@ static int __must_check __deliver_io(struct kvm_vcpu *vcpu,
*/
VCPU_EVENT(vcpu, 4, "%s isc %u", "deliver: I/O (AI/gisa)", isc);
memset(&io, 0, sizeof(io));
- io.io_int_word = (isc << 27) | 0x80000000;
+ io.io_int_word = isc_to_int_word(isc);
vcpu->stat.deliver_io_int++;
trace_kvm_s390_deliver_interrupt(vcpu->vcpu_id,
KVM_S390_INT_IO(1, 0, 0, 0),
@@ -2304,7 +2309,7 @@ static int kvm_s390_inject_airq(struct kvm *kvm,
struct kvm_s390_interrupt s390int = {
.type = KVM_S390_INT_IO(1, 0, 0, 0),
.parm = 0,
- .parm64 = (adapter->isc << 27) | 0x80000000,
+ .parm64 = isc_to_int_word(adapter->isc),
};
int ret = 0;
--
2.9.4
next prev parent reply other threads:[~2018-01-25 17:06 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-25 17:06 [PATCH v3] KVM: s390: exitless interrupt support for KVM Christian Borntraeger
2018-01-25 17:06 ` [PATCH v3 04/12] KVM: s390: implement GISA IPM related primitives Christian Borntraeger
2018-01-25 17:27 ` David Hildenbrand
2018-01-26 9:09 ` Cornelia Huck
2018-01-25 17:06 ` [PATCH v3 06/12] KVM: s390: exploit GISA and AIV for emulated interrupts Christian Borntraeger
2018-01-25 17:31 ` David Hildenbrand
2018-01-26 9:12 ` Cornelia Huck
2018-01-25 17:06 ` Christian Borntraeger [this message]
2018-01-25 17:37 ` [PATCH v3 07/12] KVM: s390: abstract adapter interruption word generation from ISC David Hildenbrand
2018-01-25 17:06 ` [PATCH v3 10/12] KVM: s390: activate GISA for emulated interrupts Christian Borntraeger
2018-01-25 17:38 ` David Hildenbrand
2018-01-26 8:16 ` Christian Borntraeger
2018-01-26 9:43 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180125170608.38276-4-borntraeger@de.ibm.com \
--to=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=frankja@linux.vnet.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=mimu@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox