When no SEV or SEV-ES guests are active, then the firmware can be updated while (SEV-SNP) VM guests are active. CC: Sean Christopherson <seanjc@xxxxxxxxxx> CC: Paolo Bonzini <pbonzini@xxxxxxxxxx> CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx> CC: Ingo Molnar <mingo@xxxxxxxxxx> CC: Borislav Petkov <bp@xxxxxxxxx> CC: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> CC: Ashish Kalra <ashish.kalra@xxxxxxx> CC: Tom Lendacky <thomas.lendacky@xxxxxxx> CC: John Allen <john.allen@xxxxxxx> CC: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> CC: "David S. Miller" <davem@xxxxxxxxxxxxx> CC: Michael Roth <michael.roth@xxxxxxx> CC: Luis Chamberlain <mcgrof@xxxxxxxxxx> CC: Russ Weight <russ.weight@xxxxxxxxx> CC: Danilo Krummrich <dakr@xxxxxxxxxx> CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> CC: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> CC: Tianfei zhang <tianfei.zhang@xxxxxxxxx> CC: Alexey Kardashevskiy <aik@xxxxxxx> Co-developed-by: Ashish Kalra <ashish.kalra@xxxxxxx> Signed-off-by: Ashish Kalra <ashish.kalra@xxxxxxx> Reviewed-by: Ashish Kalra <ashish.kalra@xxxxxxx> Signed-off-by: Dionna Glaze <dionnaglaze@xxxxxxxxxx> --- arch/x86/kvm/svm/sev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 5e6d1f1c14dfd..507ed87749f55 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -444,7 +444,11 @@ static int __sev_guest_init(struct kvm *kvm, struct kvm_sev_cmd *argp, if (ret) goto e_no_asid; - init_args.probe = false; + /* + * Setting probe will skip SEV/SEV-ES platform initialization for an SEV-SNP guest in order + * for SNP firmware hotloading to be available when only SEV-SNP VMs are running. + */ + init_args.probe = vm_type != KVM_X86_SEV_VM && vm_type != KVM_X86_SEV_ES_VM; ret = sev_platform_init(&init_args); if (ret) goto e_free; -- 2.47.0.277.g8800431eea-goog