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