From: David Hildenbrand <david@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: linux-kernel@vger.kernel.org, cohuck@redhat.com,
linux-s390@vger.kernel.org, kvm@vger.kernel.org,
frankja@linux.ibm.com, akrowiak@linux.ibm.com,
borntraeger@de.ibm.com, schwidefsky@de.ibm.com,
heiko.carstens@de.ibm.com
Subject: Re: [PATCH] KVM: s390: vsie: Do not shadow CRYCB when no AP and no keys
Date: Fri, 26 Apr 2019 11:04:01 +0200 [thread overview]
Message-ID: <fcb4dd93-0035-2d19-10db-7c22b7a21606@redhat.com> (raw)
In-Reply-To: <1556269010-22258-1-git-send-email-pmorel@linux.ibm.com>
On 26.04.19 10:56, Pierre Morel wrote:
> When the guest do not have AP instructions nor Key management
> we should return without shadowing the CRYCB.
>
> We did not check correctly in the past.
>
> Fixes: b10bd9a256ae ("s390: vsie: Use effective CRYCBD.31 to check CRYCBD
> validity")
We should really try to pay more attention, commit b10bd9a256ae already
was supposed to fix 6ee74098201b.
Unfortunately, I don't have access to documentation and can't verify.
Acked-by: David Hildenbrand <david@redhat.com>
> Fixes: 6ee74098201b ("KVM: s390: vsie: allow CRYCB FORMAT-0")
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> ---
> arch/s390/kvm/vsie.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c
> index c6983d9..ac411e9 100644
> --- a/arch/s390/kvm/vsie.c
> +++ b/arch/s390/kvm/vsie.c
> @@ -290,6 +290,7 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> u8 ecb3_flags;
> u32 ecd_flags;
> int apie_h;
> + int apie_s;
> int key_msk = test_kvm_facility(vcpu->kvm, 76);
> int fmt_o = crycbd_o & CRYCB_FORMAT_MASK;
> int fmt_h = vcpu->arch.sie_block->crycbd & CRYCB_FORMAT_MASK;
> @@ -298,7 +299,8 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> scb_s->crycbd = 0;
>
> apie_h = vcpu->arch.sie_block->eca & ECA_APIE;
> - if (!apie_h && (!key_msk || fmt_o == CRYCB_FORMAT0))
> + apie_s = apie_h & scb_o->eca;
> + if (!apie_s && (!key_msk || (fmt_o == CRYCB_FORMAT0)))
> return 0;
>
> if (!crycb_addr)
> @@ -309,7 +311,7 @@ static int shadow_crycb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
> ((crycb_addr + 128) & PAGE_MASK))
> return set_validity_icpt(scb_s, 0x003CU);
>
> - if (apie_h && (scb_o->eca & ECA_APIE)) {
> + if (apie_s) {
> ret = setup_apcb(vcpu, &vsie_page->crycb, crycb_addr,
> vcpu->kvm->arch.crypto.crycb,
> fmt_o, fmt_h);
>
--
Thanks,
David / dhildenb
next prev parent reply other threads:[~2019-04-26 9:04 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-26 8:56 [PATCH] KVM: s390: vsie: Do not shadow CRYCB when no AP and no keys Pierre Morel
2019-04-26 9:04 ` David Hildenbrand [this message]
2019-04-26 10:59 ` Pierre Morel
2019-04-26 9:08 ` Christian Borntraeger
2019-04-26 11:01 ` Pierre Morel
2019-04-29 7:10 ` Christian Borntraeger
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=fcb4dd93-0035-2d19-10db-7c22b7a21606@redhat.com \
--to=david@redhat.com \
--cc=akrowiak@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=frankja@linux.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pmorel@linux.ibm.com \
--cc=schwidefsky@de.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.