On Thu, Jul 11, 2024 at 06:27:55PM -0400, Paolo Bonzini wrote: > This check is currently performed by sev_gmem_post_populate(), but it > applies to all callers of kvm_gmem_populate(): the point of the function > is that the memory is being encrypted and some work has to be done > on all the gfns in order to encrypt them. > > Therefore, check the KVM_MEMORY_ATTRIBUTE_PRIVATE attribute prior > to invoking the callback, and stop the operation if a shared page > is encountered. Because CONFIG_KVM_PRIVATE_MEM in principle does > not require attributes, this makes kvm_gmem_populate() depend on > CONFIG_KVM_GENERIC_PRIVATE_MEM (which does require them). > > Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> Reviewed-by: Michael Roth <michael.roth@xxxxxxx>