IB/core: Fix ODP with IB_ACCESS_HUGETLB handling
authorYishai Hadas <yishaih@mellanox.com>
Sun, 22 Dec 2019 12:46:49 +0000 (14:46 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Fri, 3 Jan 2020 21:00:14 +0000 (17:00 -0400)
commit9ff1b6466a291a33389c4a9c7f3f9b64d62df40a
tree3d0cda45dd78491a367fd253b6d97f8b78483e7f
parentd07de8bd1709a80a282963ad7b2535148678a9e4
IB/core: Fix ODP with IB_ACCESS_HUGETLB handling

As VMAs for a given range might not be available as part of the
registration phase in ODP.

ib_init_umem_odp() considered the expected page shift value that was
previously set and initializes its internals accordingly.

If memory isn't backed by physical contiguous pages aligned to a hugepage
boundary an error will be set as part of the page fault flow and come back
to the user as some failed RDMA operation.

Fixes: 0008b84ea9af ("IB/umem: Add support to huge ODP")
Link: https://lore.kernel.org/r/20191222124649.52300-4-leon@kernel.org
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Reviewed-by: Artemy Kovalyov <artemyko@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Reviewed-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/umem_odp.c