mirror of
https://github.com/torvalds/linux.git
synced 2025-11-09 21:20:04 +02:00
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> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| mthca_allocator.c | ||
| mthca_av.c | ||
| mthca_catas.c | ||
| mthca_cmd.c | ||
| mthca_cmd.h | ||
| mthca_config_reg.h | ||
| mthca_cq.c | ||
| mthca_dev.h | ||
| mthca_doorbell.h | ||
| mthca_eq.c | ||
| mthca_mad.c | ||
| mthca_main.c | ||
| mthca_mcg.c | ||
| mthca_memfree.c | ||
| mthca_memfree.h | ||
| mthca_mr.c | ||
| mthca_pd.c | ||
| mthca_profile.c | ||
| mthca_profile.h | ||
| mthca_provider.c | ||
| mthca_provider.h | ||
| mthca_qp.c | ||
| mthca_reset.c | ||
| mthca_srq.c | ||
| mthca_uar.c | ||
| mthca_wqe.h | ||