commit 7e066cb9b71a ("KVM: SEV: Use long-term pin when registering encrypted memory regions") added FOLL_LONGTERM to sev_mem_enc_register_region() so anonymous guest RAM is migrated out of MIGRATE_CMA/ZONE_MOVABLE before a long term pin. This breaks virtio-pmem which has file backed (MAP_SHARED) host mapping where GUP rejects FOLL_WRITE | FOLL_LONGTERM since: commit 8ac268436e6d ("mm/gup: disallow FOLL_LONGTERM GUP-nonfast writing to file-backed mappings") commit a6e79df92e4a ("mm/gup: disallow FOLL_LONGTERM GUP-fast writing to file-backed mappings"). Drop FOLL_LONGTERM when registering encrypted memory regions and restore the previous behavior. Fixes: 7e066cb9b71a ("KVM: SEV: Use long-term pin when registering encrypted memory regions") Cc: stable@vger.kernel.org Signed-off-by: Pankaj Gupta --- arch/x86/kvm/svm/sev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 6c6a6d663e29..c4b53700f69e 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2764,7 +2764,7 @@ int sev_mem_enc_register_region(struct kvm *kvm, return -ENOMEM; region->pages = sev_pin_memory(kvm, range->addr, range->size, ®ion->npages, - FOLL_WRITE | FOLL_LONGTERM); + FOLL_WRITE); if (IS_ERR(region->pages)) { ret = PTR_ERR(region->pages); goto e_free; -- 2.34.1