Message ID | 9aeb32dc2b7080c534e7894d35ee8ad88dcc2c6e.1737505394.git.ashish.kalra@amd.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Fix broken SNP support with KVM module built-in | expand |
On 1/21/25 19:00, Ashish Kalra wrote: > From: Sean Christopherson <seanjc@google.com> > > 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@google.com> 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); >
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 + * 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);