Re: [PATCH 3/4] KVM: SVM: Ensure PSP module initialized before built-in KVM module

From: Tom Lendacky
Date: Wed Jan 22 2025 - 10:58:38 EST


On 1/21/25 19:00, Ashish Kalra wrote:
> From: Sean Christopherson <seanjc@xxxxxxxxxx>
>
> The kernel's initcall infrastructure lacks the ability to express
> dependencies between initcalls, where as 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: Sean Christopherson <seanjc@xxxxxxxxxx>

Requires your Signed-off-by:

> ---
> arch/x86/kvm/svm/sev.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> index 5a13c5224942..de404d493759 100644
> --- a/arch/x86/kvm/svm/sev.c
> +++ b/arch/x86/kvm/svm/sev.c
> @@ -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, where as the modules infrastructure

s/where as/whereas/

Thanks,
Tom

> + * 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);
>