On Tue, 10 Aug 2021 14:48:31 -0400 Peter Xu <peterx@xxxxxxxxxx> wrote: > On Thu, Aug 05, 2021 at 11:07:35AM -0600, Alex Williamson wrote: > > @@ -1690,7 +1554,7 @@ static int vfio_pci_mmap(struct vfio_device *core_vdev, struct vm_area_struct *v > > > > vma->vm_private_data = vdev; > > vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); > > - vma->vm_pgoff = (pci_resource_start(pdev, index) >> PAGE_SHIFT) + pgoff; > > + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); > > This addition seems to be an accident. :) Thanks, Nope, Jason noted on a previous version that io_remap_pfn_range() is essentially: remap_pfn_range(vma, addr, pfn, size, pgprot_decrypted(prot)); So since we switched to vmf_insert_pfn() I added this page protection flag to the vma instead, then it gets removed later when we switch back to io_remap_pfn_range(). Thanks, Alex