Message ID | 20191219134646.413164-3-leon@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | ODP Fixes | expand |
On Thu, Dec 19, 2019 at 03:46:45PM +0200, Leon Romanovsky wrote: > From: Yishai Hadas <yishaih@mellanox.com> > > When calling get_user_pages_remote() need to work with granularity of > PAGE_SIZE. > > Fix the calculation of how many entries can be read in one call to > consider that. > > Fixes: 403cd12e2cf7 ("IB/umem: Add contiguous ODP support") > Signed-off-by: Yishai Hadas <yishaih@mellanox.com> > Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com> > Signed-off-by: Leon Romanovsky <leonro@mellanox.com> > --- > drivers/infiniband/core/umem_odp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Reviewed-by: Jason Gunthorpe <jgg@mellanox.com> Jason
diff --git a/drivers/infiniband/core/umem_odp.c b/drivers/infiniband/core/umem_odp.c index e42d44e501fd..2e9ee7adab13 100644 --- a/drivers/infiniband/core/umem_odp.c +++ b/drivers/infiniband/core/umem_odp.c @@ -440,7 +440,7 @@ int ib_umem_odp_map_dma_pages(struct ib_umem_odp *umem_odp, u64 user_virt, while (bcnt > 0) { const size_t gup_num_pages = min_t(size_t, - (bcnt + BIT(page_shift) - 1) >> page_shift, + ALIGN(bcnt, PAGE_SIZE) / PAGE_SIZE, PAGE_SIZE / sizeof(struct page *)); down_read(&owning_mm->mmap_sem);