All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Ashish Kalra <ashish.kalra@amd.com>
Cc: pbonzini@redhat.com, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de,  dave.hansen@linux.intel.com, x86@kernel.org,
	hpa@zytor.com,  thomas.lendacky@amd.com, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org,  joro@8bytes.org
Subject: Re: [PATCH] x86/sev: Add support for allowing zero SEV ASIDs.
Date: Wed, 3 Jan 2024 13:54:16 -0800	[thread overview]
Message-ID: <ZZXXiFEEr7m2JitG@google.com> (raw)
In-Reply-To: <864b9717-46d2-4c1d-a84c-0784caf952f3@amd.com>

On Wed, Jan 03, 2024, Ashish Kalra wrote:
> On 1/3/2024 3:10 PM, Sean Christopherson wrote:
> > > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> > > > index d0c580607f00..bfac6d17462a 100644
> > > > --- a/arch/x86/kvm/svm/sev.c
> > > > +++ b/arch/x86/kvm/svm/sev.c
> > > > @@ -143,8 +143,20 @@ static void sev_misc_cg_uncharge(struct kvm_sev_info *sev)
> > > >    static int sev_asid_new(struct kvm_sev_info *sev)
> > > >    {
> > > > -       int asid, min_asid, max_asid, ret;
> > > > +       /*
> > > > +        * SEV-enabled guests must use asid from min_sev_asid to max_sev_asid.
> > > > +        * SEV-ES-enabled guest can use from 1 to min_sev_asid - 1.  Note, the
> > > > +        * min ASID can end up larger than the max if basic SEV support is
> > > > +        * effectively disabled by disallowing use of ASIDs for SEV guests.
> > > > +        */
> > > > +       unsigned int min_asid = sev->es_active ? 1 : min_sev_asid;
> > > > +       unsigned int max_asid = sev->es_active ? min_sev_asid - 1 : max_sev_asid;
> > > > +       unsigned int asid;
> > > >           bool retry = true;
> > > > +       int ret;
> > > > +
> > > > +       if (min_asid > max_asid)
> > > > +               return -ENOTTY;
> > > This will still return -EBUSY to user.
> > Huh?  The above is obviously -ENOTTY, and I don't see anything in the call stack
> > that will convert it to -EBUSY.
> 
> Actually, sev_asid_new() returning failure to sev_guest_init() will cause it
> to return -EBUSY to user.

Argh, I see it now.  That too should be fixed, e.g.

diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index d0c580607f00..79eb11083ad5 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -246,21 +246,20 @@ static void sev_unbind_asid(struct kvm *kvm, unsigned int handle)
 static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp)
 {
        struct kvm_sev_info *sev = &to_kvm_svm(kvm)->sev_info;
-       int asid, ret;
+       int ret;
 
        if (kvm->created_vcpus)
                return -EINVAL;
 
-       ret = -EBUSY;
        if (unlikely(sev->active))
-               return ret;
+               return -EINVAL;
 
        sev->active = true;
        sev->es_active = argp->id == KVM_SEV_ES_INIT;
-       asid = sev_asid_new(sev);
-       if (asid < 0)
+       ret = sev_asid_new(sev);
+       if (ret < 0)
                goto e_no_asid;
-       sev->asid = asid;
+       sev->asid = ret;
 
        ret = sev_platform_init(&argp->error);
        if (ret)


      reply	other threads:[~2024-01-03 21:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-02 23:21 [PATCH] x86/sev: Add support for allowing zero SEV ASIDs Ashish Kalra
2024-01-03  0:30 ` Sean Christopherson
2024-01-03 20:41   ` Kalra, Ashish
2024-01-03 21:10     ` Sean Christopherson
2024-01-03 21:22       ` Kalra, Ashish
2024-01-03 21:54         ` Sean Christopherson [this message]

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=ZZXXiFEEr7m2JitG@google.com \
    --to=seanjc@google.com \
    --cc=ashish.kalra@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@kernel.org \
    /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.