Star64_linux/drivers/infiniband/hw/vmw_pvrdma
Jason Gunthorpe a665aca89a RDMA/umem: Split ib_umem_num_pages() into ib_umem_num_dma_blocks()
ib_umem_num_pages() should only be used by things working with the SGL in
CPU pages directly.

Drivers building DMA lists should use the new ib_num_dma_blocks() which
returns the number of blocks rdma_umem_for_each_block() will return.

To make this general for DMA drivers requires a different implementation.
Computing DMA block count based on umem->address only works if the
requested page size is < PAGE_SIZE and/or the IOVA == umem->address.

Instead the number of DMA pages should be computed in the IOVA address
space, not umem->address. Thus the IOVA has to be stored inside the umem
so it can be used for these calculations.

For now set it to umem->address by default and fix it up if
ib_umem_find_best_pgsz() was called. This allows drivers to be converted
to ib_umem_num_dma_blocks() safely.

Link: https://lore.kernel.org/r/6-v2-270386b7e60b+28f4-umem_1_jgg@nvidia.com
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2020-09-11 10:24:53 -03:00
..
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
pvrdma.h RDMA/mlx5: Remove unused IB_WR_REG_SIG_MR code 2019-06-24 11:49:28 -03:00
pvrdma_cmd.c
pvrdma_cq.c RDMA: Allow fail of destroy CQ 2020-09-09 14:14:29 -03:00
pvrdma_dev_api.h RDMA/vmw_pvrdma: Use resource ids from physical device if available 2019-10-28 16:09:23 -03:00
pvrdma_doorbell.c
pvrdma_main.c RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe() 2020-05-25 14:24:09 -03:00
pvrdma_misc.c RDMA/umem: Replace for_each_sg_dma_page with rdma_umem_for_each_dma_block 2020-09-09 15:33:17 -03:00
pvrdma_mr.c RDMA/umem: Split ib_umem_num_pages() into ib_umem_num_dma_blocks() 2020-09-11 10:24:53 -03:00
pvrdma_qp.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pvrdma_ring.h IB/pvrdma: Remove unused function 2017-08-22 15:42:57 -04:00
pvrdma_srq.c RDMA: Restore ability to fail on SRQ destroy 2020-09-09 14:14:24 -03:00
pvrdma_verbs.c RDMA: Restore ability to fail on AH destroy 2020-09-09 13:57:22 -03:00
pvrdma_verbs.h RDMA: Allow fail of destroy CQ 2020-09-09 14:14:29 -03:00