On 2/3/25 15:56, Ashish Kalra wrote: > From: Sean Christopherson <seanjc@xxxxxxxxxx> > > 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: Sean Christopherson <seanjc@xxxxxxxxxx> > Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx> Reviewed-by: Tom Lendacky <thomas.lendacky@xxxxxxx> > --- > 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 a2a794c32050..0dbb25442ec1 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, 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); >