Commit 44e70718 authored by Sean Christopherson's avatar Sean Christopherson Committed by Paolo Bonzini
Browse files

KVM: SVM: Ensure PSP module is initialized if KVM module is built-in



The kernel's initcall infrastructure lacks the ability to express
dependencies between initcalls, whereas the modules infrastructure
automatically handles dependencies via symbol loading.  Ensure the
PSP SEV driver is initialized before proceeding in sev_hardware_setup()
if KVM is built-in as the dependency isn't handled by the initcall
infrastructure.

Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
Reviewed-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: default avatarAshish Kalra <ashish.kalra@amd.com>
Message-ID: <f78ddb64087df27e7bcb1ae0ab53f55aa0804fab.1739226950.git.ashish.kalra@amd.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 435b344a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2972,6 +2972,16 @@ void __init sev_hardware_setup(void)
	    WARN_ON_ONCE(!boot_cpu_has(X86_FEATURE_FLUSHBYASID)))
		goto out;

	/*
	 * The kernel's initcall infrastructure lacks the ability to express
	 * dependencies between initcalls, whereas the modules infrastructure
	 * automatically handles dependencies via symbol loading.  Ensure the
	 * PSP SEV driver is initialized before proceeding if KVM is built-in,
	 * as the dependency isn't handled by the initcall infrastructure.
	 */
	if (IS_BUILTIN(CONFIG_KVM_AMD) && sev_module_init())
		goto out;

	/* Retrieve SEV CPUID information */
	cpuid(0x8000001f, &eax, &ebx, &ecx, &edx);