Skip to content

Commit

Permalink
KVM: SVM: Remove the call to sev_platform_status() during setup
Browse files Browse the repository at this point in the history
commit 9d4747d upstream.

When both KVM support and the CCP driver are built into the kernel instead
of as modules, KVM initialization can happen before CCP initialization. As
a result, sev_platform_status() will return a failure when it is called
from sev_hardware_setup(), when this isn't really an error condition.

Since sev_platform_status() doesn't need to be called at this time anyway,
remove the invocation from sev_hardware_setup().

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Message-Id: <618380488358b56af558f2682203786f09a49483.1607620209.git.thomas.lendacky@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
tlendacky authored and gregkh committed Dec 30, 2020
1 parent 49830b2 commit 711081d
Showing 1 changed file with 1 addition and 21 deletions.
22 changes: 1 addition & 21 deletions arch/x86/kvm/svm/sev.c
Expand Up @@ -1127,9 +1127,6 @@ void sev_vm_destroy(struct kvm *kvm)

int __init sev_hardware_setup(void)
{
struct sev_user_data_status *status;
int rc;

/* Maximum number of encrypted guests supported simultaneously */
max_sev_asid = cpuid_ecx(0x8000001F);

Expand All @@ -1148,26 +1145,9 @@ int __init sev_hardware_setup(void)
if (!sev_reclaim_asid_bitmap)
return 1;

status = kmalloc(sizeof(*status), GFP_KERNEL);
if (!status)
return 1;

/*
* Check SEV platform status.
*
* PLATFORM_STATUS can be called in any state, if we failed to query
* the PLATFORM status then either PSP firmware does not support SEV
* feature or SEV firmware is dead.
*/
rc = sev_platform_status(status, NULL);
if (rc)
goto err;

pr_info("SEV supported\n");

err:
kfree(status);
return rc;
return 0;
}

void sev_hardware_teardown(void)
Expand Down

0 comments on commit 711081d

Please sign in to comment.