linux/drivers/infiniband/hw/cxgb4
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
..
cm.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
cq.c RDMA: Allow fail of destroy CQ 2020-09-09 14:14:29 -03:00
device.c RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove 2020-05-25 15:38:35 -03:00
ev.c cxgb4: Convert qpidr to XArray 2019-03-25 15:39:18 -03:00
id_table.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
iw_cxgb4.h RDMA: Allow fail of destroy CQ 2020-09-09 14:14:29 -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
mem.c RDMA/umem: Split ib_umem_num_pages() into ib_umem_num_dma_blocks() 2020-09-11 10:24:53 -03:00
provider.c RDMA: Restore ability to fail on PD deallocate 2020-09-09 13:57:22 -03:00
qp.c RDMA: Restore ability to fail on SRQ destroy 2020-09-09 14:14:24 -03:00
resource.c RDMA/cxgb4: Use sizeof() notation 2019-05-27 14:32:17 -03:00
restrack.c RDMA: Add dedicated CM_ID resource tracker function 2020-06-23 11:46:27 -03:00
t4.h iw_cxgb4: complete the cached SRQ buffers 2019-02-08 17:02:05 -07:00
t4fw_ri_api.h RDMA: Replace zero-length array with flexible-array member 2020-02-20 13:33:51 -04:00