• Paolo Bonzini's avatar
    KVM: guest_memfd: let kvm_gmem_populate() operate only on private gfns · e4ee5447
    Paolo Bonzini authored
    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).
    Reviewed-by: default avatarMichael Roth <michael.roth@amd.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    e4ee5447
sev.c 132 KB