lkml.org 
[lkml]   [2017]   [Oct]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [Part2 PATCH v5 17/31] KVM: SVM: Add KVM_SEV_INIT command
On Wed, Oct 04, 2017 at 08:13:58AM -0500, Brijesh Singh wrote:
> The command initializes the SEV platform context and allocates a new ASID
> for this guest from the SEV ASID pool. The firmware must be initialized
> before we issue any guest launch commands to create a new memory encryption
> context.
>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Ingo Molnar <mingo@redhat.com>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: "Radim Krčmář" <rkrcmar@redhat.com>
> Cc: Joerg Roedel <joro@8bytes.org>
> Cc: Borislav Petkov <bp@suse.de>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Cc: x86@kernel.org
> Cc: kvm@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
> ---
> arch/x86/include/asm/kvm_host.h | 7 ++
> arch/x86/kvm/svm.c | 189 +++++++++++++++++++++++++++++++++++++++-
> 2 files changed, 195 insertions(+), 1 deletion(-)

Just minor cleanups. With those applied:

Reviewed-by: Borislav Petkov <bp@suse.de>

---
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 26380627e7f9..7b3b199e15a1 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -1189,8 +1189,8 @@ static __init int svm_hardware_setup(void)

static int sev_platform_get_state(int *state, int *error)
{
- int ret;
struct sev_data_status *data;
+ int ret;

data = kzalloc(sizeof(*data), GFP_KERNEL);
if (!data)
@@ -1201,7 +1201,7 @@ static int sev_platform_get_state(int *state, int *error)
*state = data->state;

pr_info_once("SEV firmware major %d minor %d build %d\n",
- data->api_major, data->api_minor, data->build);
+ data->api_major, data->api_minor, data->build);

kfree(data);
return ret;
@@ -5577,6 +5577,7 @@ static int sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp)

sev->active = true;
sev->asid = asid;
+
return 0;

e_shutdown:
@@ -5598,17 +5599,19 @@ static int svm_mem_enc_op(struct kvm *kvm, void __user *argp)
mutex_lock(&kvm->lock);

switch (sev_cmd.id) {
- case KVM_SEV_INIT: {
+ case KVM_SEV_INIT:
r = sev_guest_init(kvm, &sev_cmd);
break;
- }
+
default:
break;
}

mutex_unlock(&kvm->lock);
+
if (copy_to_user(argp, &sev_cmd, sizeof(struct kvm_sev_cmd)))
r = -EFAULT;
+
return r;
}

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

\
 
 \ /
  Last update: 2017-10-14 11:22    [W:0.478 / U:15.208 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site