linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tony Krowiak <akrowiak@linux.vnet.ibm.com>
To: linux-s390@vger.kernel.org, linux-kernel@vger.kernel.org,
	kvm@vger.kernel.org
Cc: freude@de.ibm.com, schwidefsky@de.ibm.com,
	heiko.carstens@de.ibm.com, borntraeger@de.ibm.com,
	cohuck@redhat.com, kwankhede@nvidia.com,
	bjsdjshi@linux.vnet.ibm.com, pbonzini@redhat.com,
	alex.williamson@redhat.com, pmorel@linux.vnet.ibm.com,
	alifm@linux.vnet.ibm.com, mjrosato@linux.vnet.ibm.com,
	jjherne@linux.vnet.ibm.com, thuth@redhat.com,
	pasic@linux.vnet.ibm.com, berrange@redhat.com,
	fiuczy@linux.vnet.ibm.com, buendgen@de.ibm.com,
	akrowiak@linux.vnet.ibm.com, frankja@linux.ibm.com,
	Tony Krowiak <akrowiak@linux.ibm.com>
Subject: [PATCH v9 14/22] KVM: s390: interfaces to clear CRYCB masks
Date: Mon, 13 Aug 2018 17:48:11 -0400	[thread overview]
Message-ID: <1534196899-16987-15-git-send-email-akrowiak@linux.vnet.ibm.com> (raw)
In-Reply-To: <1534196899-16987-1-git-send-email-akrowiak@linux.vnet.ibm.com>

From: Tony Krowiak <akrowiak@linux.ibm.com>

Introduces two new KVM interface to clear the APM, AQM and ADM masks in
the guest's CRYCB.  The VCPUs are taken out of SIE to ensure the VCPUs do
not get out of sync.

Signed-off-by: Tony Krowiak <akrowiak@linux.ibm.com>
Acked-by: Halil Pasic <pasic@linux.ibm.com>
Tested-by: Michael Mueller <mimu@linux.ibm.com>
Tested-by: Farhan Ali <alifm@linux.ibm.com>
Tested-by: Pierre Morel <pmorel@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
 arch/s390/include/asm/kvm_host.h |    3 +++
 arch/s390/kvm/kvm-s390.c         |   15 +++++++++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
index 4a739d4..07e58d8 100644
--- a/arch/s390/include/asm/kvm_host.h
+++ b/arch/s390/include/asm/kvm_host.h
@@ -258,6 +258,7 @@ struct kvm_s390_sie_block {
 	__u64	tecmc;			/* 0x00e8 */
 	__u8	reservedf0[12];		/* 0x00f0 */
 #define CRYCB_FORMAT_MASK 0x00000003
+#define CRYCB_FORMAT0 0x00000000
 #define CRYCB_FORMAT1 0x00000001
 #define CRYCB_FORMAT2 0x00000003
 	__u32	crycbd;			/* 0x00fc */
@@ -861,6 +862,8 @@ void kvm_arch_async_page_not_present(struct kvm_vcpu *vcpu,
 void kvm_arch_async_page_present(struct kvm_vcpu *vcpu,
 				 struct kvm_async_pf *work);
 
+void kvm_arch_crypto_clear_masks(struct kvm *kvm);
+
 extern int sie64a(struct kvm_s390_sie_block *, u64 *);
 extern char sie_exit;
 
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index f7de123..8d8a65a 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -1919,6 +1919,21 @@ static void kvm_s390_set_crycb_format(struct kvm *kvm)
 		kvm->arch.crypto.crycbd |= CRYCB_FORMAT1;
 }
 
+void kvm_arch_crypto_clear_masks(struct kvm *kvm)
+{
+	mutex_lock(&kvm->lock);
+	kvm_s390_vcpu_block_all(kvm);
+
+	memset(&kvm->arch.crypto.crycb->apcb0, 0,
+	       sizeof(kvm->arch.crypto.crycb->apcb0));
+	memset(&kvm->arch.crypto.crycb->apcb1, 0,
+	       sizeof(kvm->arch.crypto.crycb->apcb1));
+
+	kvm_s390_vcpu_unblock_all(kvm);
+	mutex_unlock(&kvm->lock);
+}
+EXPORT_SYMBOL(kvm_arch_crypto_clear_masks);
+
 static u64 kvm_s390_get_initial_cpuid(void)
 {
 	struct cpuid cpuid;
-- 
1.7.1


  parent reply	other threads:[~2018-08-13 21:49 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-13 21:47 [PATCH v9 00/22] guest dedicated crypto adapters Tony Krowiak
2018-08-13 21:47 ` [PATCH v9 01/22] s390/zcrypt: Add ZAPQ inline function Tony Krowiak
2018-08-13 21:47 ` [PATCH v9 02/22] s390/zcrypt: Review inline assembler constraints Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 03/22] s390/zcrypt: Show load of cards and queues in sysfs Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 04/22] s390/zcrypt: Integrate ap_asm.h into include/asm/ap.h Tony Krowiak
2018-08-14  8:43   ` Cornelia Huck
2018-08-17 13:18     ` Tony Krowiak
2018-08-17 13:27       ` Cornelia Huck
2018-08-17 19:09         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 05/22] KVM: s390: vsie: simulate VCPU SIE entry/exit Tony Krowiak
2018-08-14  8:50   ` Cornelia Huck
2018-08-14 12:46     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 06/22] KVM: s390: introduce and use KVM_REQ_VSIE_RESTART Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 07/22] KVM: s390: refactor crypto initialization Tony Krowiak
2018-08-20 16:41   ` David Hildenbrand
2018-08-20 20:33     ` Tony Krowiak
2018-08-20 20:41       ` David Hildenbrand
2018-08-21 13:29         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 08/22] s390: vfio-ap: base implementation of VFIO AP device driver Tony Krowiak
2018-08-14 10:42   ` Cornelia Huck
2018-08-14 23:30     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 09/22] s390: vfio-ap: register matrix device with VFIO mdev framework Tony Krowiak
2018-08-14 11:19   ` Cornelia Huck
2018-08-15 16:51     ` Tony Krowiak
2018-08-16 16:24     ` Tony Krowiak
2018-08-17  8:43       ` Cornelia Huck
2018-08-17 19:02         ` Tony Krowiak
2018-09-06  8:49   ` Pierre Morel
2018-09-10 13:38     ` Tony Krowiak
2018-09-10 21:58       ` Halil Pasic
2018-08-13 21:48 ` [PATCH v9 10/22] s390: vfio-ap: sysfs interfaces to configure adapters Tony Krowiak
2018-08-15  9:52   ` Cornelia Huck
2018-08-15 16:59     ` Tony Krowiak
2018-08-16  7:30       ` Cornelia Huck
2018-08-17 13:23         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 11/22] s390: vfio-ap: sysfs interfaces to configure domains Tony Krowiak
2018-08-15 12:05   ` Cornelia Huck
2018-08-15 17:00     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 12/22] s390: vfio-ap: sysfs interfaces to configure control domains Tony Krowiak
2018-08-20 14:23   ` Cornelia Huck
2018-08-20 16:43     ` Halil Pasic
2018-08-20 17:41     ` Tony Krowiak
2018-08-21 15:25       ` Cornelia Huck
2018-08-21 17:07         ` Tony Krowiak
2018-08-21 23:18           ` Halil Pasic
2018-08-22  9:42             ` Cornelia Huck
2018-08-22 10:43               ` Halil Pasic
2018-08-22 11:03               ` Pierre Morel
2018-08-22 15:11                 ` Christian Borntraeger
2018-08-22 15:34                   ` Pierre Morel
2018-08-22 15:48                     ` Christian Borntraeger
2018-08-22 15:53                       ` Pierre Morel
2018-08-22 17:11                       ` Halil Pasic
2018-08-22 19:16                         ` Tony Krowiak
2018-08-23  9:26                           ` Halil Pasic
2018-08-23 10:41                             ` Pierre Morel
2018-08-23 10:25                           ` Cornelia Huck
2018-08-23 10:43                             ` Pierre Morel
2018-08-23 11:31                               ` Cornelia Huck
2018-08-23 11:44                                 ` Pierre Morel
2018-08-23 14:16                             ` Tony Krowiak
2018-08-27  8:33                               ` Cornelia Huck
2018-08-27 13:47                                 ` Tony Krowiak
2018-08-27 13:51                                   ` Cornelia Huck
2018-08-27 15:39                                     ` Halil Pasic
2018-09-10 13:27                                     ` Tony Krowiak
2018-08-22 15:18               ` Tony Krowiak
2018-08-22 14:31             ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 13/22] s390: vfio-ap: sysfs interface to view matrix mdev matrix Tony Krowiak
2018-08-20 14:08   ` Cornelia Huck
2018-09-12 17:01     ` Tony Krowiak
2018-09-13  9:12       ` Halil Pasic
2018-08-13 21:48 ` Tony Krowiak [this message]
2018-08-15 13:10   ` [PATCH v9 14/22] KVM: s390: interfaces to clear CRYCB masks Cornelia Huck
2018-08-15 17:55     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 15/22] s390: vfio-ap: implement mediated device open callback Tony Krowiak
2018-08-15 16:08   ` Cornelia Huck
2018-08-15 18:21     ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 16/22] s390: vfio-ap: implement VFIO_DEVICE_GET_INFO ioctl Tony Krowiak
2018-08-20 14:24   ` Cornelia Huck
2018-08-13 21:48 ` [PATCH v9 17/22] s390: vfio-ap: zeroize the AP queues Tony Krowiak
2018-08-15 16:24   ` Cornelia Huck
2018-08-15 20:36     ` Tony Krowiak
2018-08-17  9:34       ` Cornelia Huck
2018-08-13 21:48 ` [PATCH v9 18/22] s390: vfio-ap: implement VFIO_DEVICE_RESET ioctl Tony Krowiak
2018-08-15 16:38   ` Cornelia Huck
2018-08-15 21:05     ` Tony Krowiak
2018-08-17  9:38       ` Cornelia Huck
2018-08-17 19:03         ` Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 19/22] KVM: s390: Clear Crypto Control Block when using vSIE Tony Krowiak
2018-08-13 21:48 ` [PATCH v9 20/22] KVM: s390: Handling of Cypto control block in VSIE Tony Krowiak
2018-08-21  8:30   ` David Hildenbrand
2018-08-13 21:48 ` [PATCH v9 21/22] KVM: s390: CPU model support for AP virtualization Tony Krowiak
2018-08-20 14:26   ` Cornelia Huck
2018-08-21  8:03   ` David Hildenbrand
2018-08-22 11:19   ` David Hildenbrand
2018-08-22 11:24     ` David Hildenbrand
2018-08-22 20:16       ` Tony Krowiak
2018-08-23  7:44         ` David Hildenbrand
2018-08-23 10:00           ` Halil Pasic
2018-08-23 10:28             ` David Hildenbrand
2018-08-23 11:10               ` Pierre Morel
2018-08-23 11:12                 ` David Hildenbrand
2018-08-23 12:47                   ` Pierre Morel
2018-08-23 13:22                     ` Halil Pasic
2018-08-23 13:38                       ` David Hildenbrand
2018-08-23 14:59                         ` Pierre Morel
2018-08-23 17:35                           ` Tony Krowiak
2018-08-23 17:40                             ` David Hildenbrand
2018-08-24 10:28                               ` Halil Pasic
2018-08-22 14:33     ` Pierre Morel
2018-08-22 15:04       ` David Hildenbrand
2018-08-22 15:50         ` Pierre Morel
2018-08-22 16:57           ` David Hildenbrand
2018-08-22 21:05             ` Tony Krowiak
2018-08-23  7:42               ` David Hildenbrand
2018-08-22 20:54     ` Tony Krowiak
2018-08-23  7:48       ` David Hildenbrand
2018-08-23  8:24         ` Cornelia Huck
2018-09-12 17:42           ` Tony Krowiak
2018-09-17  7:57             ` David Hildenbrand
2018-08-23  8:26         ` Pierre Morel
2018-08-13 21:48 ` [PATCH v9 22/22] s390: doc: detailed specifications " Tony Krowiak
2018-08-20 16:03   ` Cornelia Huck
2018-08-20 20:16     ` Tony Krowiak
2018-08-21 16:13       ` Cornelia Huck
2018-08-21 19:21         ` Tony Krowiak
2018-08-21 18:54       ` Halil Pasic
2018-08-22  7:38         ` Cornelia Huck
2018-08-21  9:00     ` Harald Freudenberger
2018-08-21 15:53       ` Cornelia Huck
2018-08-22  7:04         ` Harald Freudenberger
2018-08-22 10:09           ` Cornelia Huck
2018-08-22 10:13         ` Harald Freudenberger
2018-08-22 10:45           ` Halil Pasic
2018-08-22 10:19 ` [PATCH v9 00/22] guest dedicated crypto adapters Cornelia Huck
2018-08-22 10:58   ` Pierre Morel
2018-08-22 18:59   ` Tony Krowiak

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=1534196899-16987-15-git-send-email-akrowiak@linux.vnet.ibm.com \
    --to=akrowiak@linux.vnet.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=alifm@linux.vnet.ibm.com \
    --cc=berrange@redhat.com \
    --cc=bjsdjshi@linux.vnet.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=buendgen@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=fiuczy@linux.vnet.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=freude@de.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jjherne@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.vnet.ibm.com \
    --cc=pasic@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=pmorel@linux.vnet.ibm.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=thuth@redhat.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;
as well as URLs for NNTP newsgroup(s).