diff options
| author | Jason Gunthorpe <[email protected]> | 2019-04-16 14:07:26 +0300 |
|---|---|---|
| committer | Jason Gunthorpe <[email protected]> | 2019-04-24 13:06:40 -0300 |
| commit | d5e560d3f72382ac4e3bfe4e0f0420e6a220b039 (patch) | |
| tree | b5d29d24666017a08821125316e2a31d499ed0b2 | |
| parent | c660133c339f9ab684fdf568c0d51b9ae5e86002 (diff) | |
RDMA/mlx5: Use rdma_user_map_io for mapping BAR pages
Since mlx5 supports device disassociate it must use this API for all
BAR page mmaps, otherwise the pages can remain mapped after the device
is unplugged causing a system crash.
Cc: [email protected]
Fixes: 5f9794dc94f5 ("RDMA/ucontext: Add a core API for mmaping driver IO memory")
Signed-off-by: Jason Gunthorpe <[email protected]>
Reviewed-by: Haggai Eran <[email protected]>
Signed-off-by: Leon Romanovsky <[email protected]>
| -rw-r--r-- | drivers/infiniband/hw/mlx5/main.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index 12a75dfc992b..d3dd290ae1b1 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -2240,14 +2240,12 @@ static int mlx5_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vm if (PAGE_SIZE > 4096) return -EOPNOTSUPP; - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); pfn = (dev->mdev->iseg_base + offsetof(struct mlx5_init_seg, internal_timer_h)) >> PAGE_SHIFT; - if (io_remap_pfn_range(vma, vma->vm_start, pfn, - PAGE_SIZE, vma->vm_page_prot)) - return -EAGAIN; - break; + return rdma_user_mmap_io(&context->ibucontext, vma, pfn, + PAGE_SIZE, + pgprot_noncached(vma->vm_page_prot)); case MLX5_IB_MMAP_CLOCK_INFO: return mlx5_ib_mmap_clock_info_page(dev, vma, context); |