RDMA: Add ib_virt_dma_to_page()
authorJason Gunthorpe <jgg@nvidia.com>
Fri, 14 Apr 2023 13:58:29 +0000 (10:58 -0300)
committerLeon Romanovsky <leon@kernel.org>
Sun, 16 Apr 2023 08:08:07 +0000 (11:08 +0300)
commit8d7c7c0eeb74281c846ef9231ce20536c79a99b4
treeb80b6fee2ff23604fd054ea29593ec8b6ece33c7
parentb2b1ddc457458fecd1c6f385baa9fbda5f0c63ad
RDMA: Add ib_virt_dma_to_page()

Make it clearer what is going on by adding a function to go back from the
"virtual" dma_addr to a kva and another to a struct page. This is used in the
ib_uses_virt_dma() style drivers (siw, rxe, hfi, qib).

Call them instead of a naked casting and  virt_to_page() when working with dma_addr
values encoded by the various ib_map functions.

This also fixes the virt_to_page() casting problem Linus Walleij has been
chasing.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/0-v2-05ea785520ed+10-ib_virt_page_jgg@nvidia.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
drivers/infiniband/sw/rxe/rxe_mr.c
drivers/infiniband/sw/rxe/rxe_verbs.c
drivers/infiniband/sw/siw/siw_qp_rx.c
drivers/infiniband/sw/siw/siw_qp_tx.c
drivers/infiniband/sw/siw/siw_verbs.c
include/rdma/ib_verbs.h