提交 ad0a057b 编写于 作者: J Jason Gunthorpe 提交者: Yang Yingliang

vfio-pci: Use io_remap_pfn_range() for PCI IO memory

stable inclusion
from linux-4.19.164
commit bb3130192ff9333f93ca02cb6f17144cf55ba4d8

--------------------------------

[ Upstream commit 7b06a56d ]

commit f8f6ae5d ("mm: always have io_remap_pfn_range() set
pgprot_decrypted()") allows drivers using mmap to put PCI memory mapped
BAR space into userspace to work correctly on AMD SME systems that default
to all memory encrypted.

Since vfio_pci_mmap_fault() is working with PCI memory mapped BAR space it
should be calling io_remap_pfn_range() otherwise it will not work on SME
systems.

Fixes: 11c4cd07 ("vfio-pci: Fault mmaps to enable vma tracking")
Signed-off-by: NJason Gunthorpe <jgg@nvidia.com>
Acked-by: NPeter Xu <peterx@redhat.com>
Tested-by: NTom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 b6e28a45
...@@ -1378,7 +1378,7 @@ static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf) ...@@ -1378,7 +1378,7 @@ static vm_fault_t vfio_pci_mmap_fault(struct vm_fault *vmf)
mutex_unlock(&vdev->vma_lock); mutex_unlock(&vdev->vma_lock);
if (remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, if (io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
vma->vm_end - vma->vm_start, vma->vm_page_prot)) vma->vm_end - vma->vm_start, vma->vm_page_prot))
ret = VM_FAULT_SIGBUS; ret = VM_FAULT_SIGBUS;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册