RDMA/umem: Use ib_dma_max_seg_size instead of dma_get_max_seg_size
RDMA ULPs must not call DMA mapping APIs directly but instead use the
ib_dma_* wrappers.
Fixes: 0c16d9635e
("RDMA/umem: Move to allocate SG table from pages")
Link: https://lore.kernel.org/r/20201106181941.1878556-3-hch@lst.de
Reported-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
fbb7dc5db6
commit
b116c70279
@ -229,10 +229,10 @@ struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr,
|
|||||||
|
|
||||||
cur_base += ret * PAGE_SIZE;
|
cur_base += ret * PAGE_SIZE;
|
||||||
npages -= ret;
|
npages -= ret;
|
||||||
sg = __sg_alloc_table_from_pages(
|
sg = __sg_alloc_table_from_pages(&umem->sg_head, page_list, ret,
|
||||||
&umem->sg_head, page_list, ret, 0, ret << PAGE_SHIFT,
|
0, ret << PAGE_SHIFT,
|
||||||
dma_get_max_seg_size(device->dma_device), sg, npages,
|
ib_dma_max_seg_size(device), sg, npages,
|
||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
umem->sg_nents = umem->sg_head.nents;
|
umem->sg_nents = umem->sg_head.nents;
|
||||||
if (IS_ERR(sg)) {
|
if (IS_ERR(sg)) {
|
||||||
unpin_user_pages_dirty_lock(page_list, ret, 0);
|
unpin_user_pages_dirty_lock(page_list, ret, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user