Ackerley Tng via B4 Relay <[email protected]> writes:
> From: Michael Roth <[email protected]> > Thanks Michael! > > [...snip...] > > > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index c2126b3c30724..bf10d24907a00 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -2343,7 +2343,15 @@ static int sev_gmem_post_populate(struct kvm *kvm, > gfn_t gfn, kvm_pfn_t pfn, > int level; > int ret; > > - if (WARN_ON_ONCE(sev_populate_args->type != KVM_SEV_SNP_PAGE_TYPE_ZERO > && !src_page)) > + /* > + * For vm_memory_attributes=1, in-place conversion/population is not > + * supported, so the initial contents necessarily need to come from a > + * separate src address. For vm_memory_attributes=0, this isn't > + * necessarily the case, since the pages may have been populated > + * directly from userspace before calling KVM_SEV_SNP_LAUNCH_UPDATE. > + */ I dropped the #ifdef CONFIG_KVM_VM_MEMORY_ATTRIBUTES from [1] since vm_memory_attributes is #define-d as false when if CONFIG_KVM_VM_MEMORY_ATTRIBUTES is not defined. > + if (vm_memory_attributes && > + sev_populate_args->type != KVM_SEV_SNP_PAGE_TYPE_ZERO && !src_page) > return -EINVAL; > > ret = snp_lookup_rmpentry((u64)pfn, &assigned, &level); [1] https://github.com/AMDESE/linux/commit/7e7c29afdf3763822ced0b7007fc0f93b8fb993d > > [...snip...] >
