OSDN Git Service

IB/mlx5: Add mmap support for VAR
authorYishai Hadas <yishaih@mellanox.com>
Thu, 12 Dec 2019 11:09:28 +0000 (13:09 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Sun, 12 Jan 2020 23:49:13 +0000 (19:49 -0400)
Add mmap support for VAR, it uses the 'offset' command mode with
involvement of IB core APIs to find the previously allocated mmap entry.

Link: https://lore.kernel.org/r/20191212110928.334995-6-leon@kernel.org
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx5/main.c

index 433ed48..97bcf01 100644 (file)
@@ -2253,7 +2253,10 @@ static int mlx5_ib_mmap_offset(struct mlx5_ib_dev *dev,
 
        mentry = to_mmmap(entry);
        pfn = (mentry->address >> PAGE_SHIFT);
-       prot = pgprot_writecombine(vma->vm_page_prot);
+       if (mentry->mmap_flag == MLX5_IB_MMAP_TYPE_VAR)
+               prot = pgprot_noncached(vma->vm_page_prot);
+       else
+               prot = pgprot_writecombine(vma->vm_page_prot);
        ret = rdma_user_mmap_io(ucontext, vma, pfn,
                                entry->npages * PAGE_SIZE,
                                prot,