[PATCH 3/6] PCI/P2PDMA: create VMA without page_mkwrite() operator

Martin Oliveira
2024-06-05T19:30:16Z

The P2PDMA code does not need (or want) a page_mkwrite() operator on its
VMA.

Furthermore, having the page_mkwrite() operator causes
writable_file_mapping_allowed() to fail due to
vma_needs_dirty_tracking() on the gup flow, which is a pre-requisite for
enabling P2PDMA with FOLL_LONGTERM use cases.

Co-developed-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Martin Oliveira <martin.oliveira@eideticom.com>
---
drivers/pci/p2pdma.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c
index 4f47a13cb500..ac07053abfea 100644
--- a/drivers/pci/p2pdma.c
+++ b/drivers/pci/p2pdma.c
@@ -171,6 +171,7 @@ static struct bin_attribute p2pmem_alloc_attr = {
* to be very large.
*/
.size = SZ_1T,
+ .mmap_allocates = true,
};

static struct attribute *p2pmem_attrs[] = {
--
2.34.1