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...]
>

Reply via email to